@dimcool/sdk 0.1.24 → 0.1.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -662,6 +662,52 @@ interface PaginatedNotificationsResponse {
662
662
  limit: number;
663
663
  unreadCount: number;
664
664
  }
665
+ type TransactionJobStatus = 'PENDING' | 'PROCESSING' | 'CONFIRMING' | 'COMPLETED' | 'FAILED' | 'CANCELLED';
666
+ type TransactionJobType = 'GAME_PAYOUT_WINNER' | 'GAME_PAYOUT_DRAW' | 'PREDICTION_MARKET_PAYOUT' | 'PREDICTION_MARKET_REFUND' | 'PREDICTION_MARKET_BONUS' | 'REFERRAL_CLAIM' | 'LOBBY_DEPOSIT_REFUND' | 'ESCROW_SWEEP' | 'P2P_TRANSFER_CONFIRM' | 'LOBBY_DEPOSIT_CONFIRM';
667
+ interface TransactionJob {
668
+ id: string;
669
+ type: TransactionJobType;
670
+ status: TransactionJobStatus;
671
+ idempotencyKey: string;
672
+ recipientUserId: string;
673
+ amount: number;
674
+ mint: string;
675
+ gameHistoryId?: string | null;
676
+ contextType?: string | null;
677
+ contextId?: string | null;
678
+ bullmqJobId?: string | null;
679
+ attempts: number;
680
+ maxAttempts: number;
681
+ lastError?: string | null;
682
+ walletTransactionId?: string | null;
683
+ signature?: string | null;
684
+ payload: Record<string, unknown>;
685
+ scheduledFor?: string | null;
686
+ startedAt?: string | null;
687
+ completedAt?: string | null;
688
+ failedAt?: string | null;
689
+ createdAt: string;
690
+ updatedAt: string;
691
+ recipientUser?: {
692
+ id: string;
693
+ username?: string | null;
694
+ };
695
+ }
696
+ interface TransactionQueueStats {
697
+ pending: number;
698
+ processing: number;
699
+ confirming: number;
700
+ completed: number;
701
+ failed: number;
702
+ cancelled: number;
703
+ }
704
+ interface PaginatedTransactionJobs {
705
+ items: TransactionJob[];
706
+ total: number;
707
+ page: number;
708
+ limit: number;
709
+ totalPages: number;
710
+ }
665
711
  interface Achievement {
666
712
  id: string;
667
713
  code: string;
@@ -699,11 +745,16 @@ interface WalletSigner {
699
745
  */
700
746
  signMessage: (message: string) => Promise<Uint8Array | string>;
701
747
  /**
702
- * Sign a transaction
703
- * @param transaction - The Solana transaction to sign
704
- * @returns The signed transaction
748
+ * Sign a transaction and return the signed transaction.
749
+ * Mutually exclusive with signAndSendTransaction provide exactly one.
750
+ */
751
+ signTransaction?: (transaction: Transaction) => Promise<Transaction>;
752
+ /**
753
+ * Sign and send a transaction in one step, returning the signature string.
754
+ * Used by embedded wallets that cannot return signed bytes without also sending.
755
+ * Mutually exclusive with signTransaction — provide exactly one.
705
756
  */
706
- signTransaction: (transaction: Transaction) => Promise<Transaction>;
757
+ signAndSendTransaction?: (transaction: Transaction) => Promise<string>;
707
758
  }
708
759
  interface BalanceResponse {
709
760
  sol: number;
@@ -867,12 +918,22 @@ declare class Wallet {
867
918
  * @returns The signature
868
919
  */
869
920
  signMessage(message: string): Promise<Uint8Array | string>;
921
+ /**
922
+ * Check whether the configured signer uses signAndSendTransaction (client-sent mode).
923
+ */
924
+ isSignAndSendMode(): boolean;
870
925
  /**
871
926
  * Sign a transaction using the configured signer
872
927
  * @param transaction - The transaction to sign
873
928
  * @returns The signed transaction
874
929
  */
875
930
  signTransaction(transaction: Transaction): Promise<Transaction>;
931
+ /**
932
+ * Sign and send a transaction using the configured signer (client-sent mode).
933
+ * @param transaction - The transaction to sign and send
934
+ * @returns The transaction signature
935
+ */
936
+ signAndSendTransaction(transaction: Transaction): Promise<string>;
876
937
  /**
877
938
  * Get QR code as a data URL for the current user's wallet address.
878
939
  * Use as <img src={url} /> in the deposit / add-funds section.
@@ -931,9 +992,14 @@ declare class Wallet {
931
992
  * @returns Transaction signature and status
932
993
  */
933
994
  submitTransfer(signedTransaction: string, senderAddress: string, recipientAddress: string, amount: number, token?: TransferToken, ataCreated?: boolean, recipientInput?: string): Promise<SubmitTransferResponse>;
995
+ /**
996
+ * Confirm a transfer that was already sent by the client (signAndSendTransaction path).
997
+ */
998
+ confirmTransferSignature(signature: string, senderAddress: string, recipientAddress: string, amount: number, token?: TransferToken, ataCreated?: boolean, recipientInput?: string): Promise<SubmitTransferResponse>;
934
999
  /**
935
1000
  * Full transfer flow in one call: prepare -> sign -> submit
936
1001
  * Recipient can be username, .sol domain, or Solana address (resolved by backend).
1002
+ * Automatically uses signAndSendTransaction or signTransaction based on signer capability.
937
1003
  */
938
1004
  send(recipient: string, amount: number, token?: TransferToken): Promise<SendTransferResponse>;
939
1005
  }
@@ -988,6 +1054,17 @@ declare class Admin {
988
1054
  category?: CriticalIncidentCategory;
989
1055
  }): Promise<PaginatedCriticalIncidents>;
990
1056
  resolveCriticalIncident(id: string, resolutionNote?: string): Promise<CriticalIncident>;
1057
+ getTransactionQueueStats(): Promise<TransactionQueueStats>;
1058
+ getTransactionQueueJobs(input?: {
1059
+ status?: TransactionJobStatus;
1060
+ type?: TransactionJobType;
1061
+ userId?: string;
1062
+ page?: number;
1063
+ limit?: number;
1064
+ }): Promise<PaginatedTransactionJobs>;
1065
+ getTransactionQueueJob(id: string): Promise<TransactionJob>;
1066
+ retryTransactionQueueJob(id: string): Promise<TransactionJob>;
1067
+ cancelTransactionQueueJob(id: string): Promise<TransactionJob>;
991
1068
  getPlatformFees(input?: {
992
1069
  page?: number;
993
1070
  limit?: number;
@@ -1122,7 +1199,7 @@ interface QueueStats {
1122
1199
  totalQueuedLobbies: number;
1123
1200
  }
1124
1201
  type ChatMessageType = 'user' | 'system';
1125
- type SystemMessageType = 'player_joined' | 'player_left' | 'bet_changed' | 'call_joined' | 'call_left' | 'global_help' | 'global_challenge' | 'global_tip' | 'spectator_donation';
1202
+ type SystemMessageType = 'player_joined' | 'player_left' | 'bet_changed' | 'call_joined' | 'call_left' | 'global_help' | 'global_challenge' | 'global_tip' | 'spectator_donation' | 'challenge_accepted' | 'challenge_declined';
1126
1203
  interface ChatMessageReply {
1127
1204
  id: string;
1128
1205
  userId?: string;
@@ -1187,15 +1264,14 @@ declare class Lobbies {
1187
1264
  message: string;
1188
1265
  }>;
1189
1266
  /**
1190
- * Play again: Create a new lobby, start deposits, and prepare deposit transaction
1191
- * Returns the lobby and unsigned transaction that needs to be signed
1267
+ * Play again: Create a new lobby and prepare deposit in one flow.
1268
+ * Returns the lobby and unsigned transaction that needs to be signed.
1192
1269
  * @param gameType - The game type to play again
1193
1270
  * @param betAmount - The bet amount (same as previous game)
1194
1271
  * @param escrow - The escrow service instance (from sdk.escrow)
1195
1272
  */
1196
1273
  playAgain(gameType: string, betAmount: MoneyMinor, escrow: {
1197
- startDeposits: (id: string) => Promise<void>;
1198
- prepareDepositTransaction: (id: string) => Promise<{
1274
+ prepareAndStartDeposit: (id: string) => Promise<{
1199
1275
  transaction: string;
1200
1276
  message: string;
1201
1277
  }>;
@@ -1211,6 +1287,8 @@ interface GameType {
1211
1287
  maxPlayers: number;
1212
1288
  minPlayers: number;
1213
1289
  description?: string;
1290
+ /** Agent-facing instructions including game pace (how fast the game is). */
1291
+ detailedInstructions?: string;
1214
1292
  available: boolean;
1215
1293
  betOptions?: BetOption[];
1216
1294
  }
@@ -1341,6 +1419,7 @@ declare class Games {
1341
1419
  success: boolean;
1342
1420
  bothReady: boolean;
1343
1421
  newGameId?: string;
1422
+ newLobbyId?: string;
1344
1423
  }>;
1345
1424
  /**
1346
1425
  * Cancel a rematch request
@@ -1624,7 +1703,7 @@ declare class Tips {
1624
1703
  send(recipientUsername: string, amount: number): Promise<SendTipResponse>;
1625
1704
  }
1626
1705
 
1627
- type WsEventName = 'lobby:created' | 'lobby:updated' | 'lobby:player:joined' | 'lobby:player:left' | 'lobby:player:connected' | 'lobby:player:disconnected' | 'lobby:bet:updated' | 'lobby:invitation' | 'lobby:deleted' | 'lobby:queue:joined' | 'lobby:queue:cancelled' | 'lobby:matched' | 'lobby:typing:start' | 'lobby:typing:stop' | 'game:updated' | 'game:completed' | 'game:paid' | 'game:abandoned' | 'game:turn' | 'game:move' | 'game:state' | 'game:player:connected' | 'game:player:disconnected' | 'game:rps:starting' | 'game:rps:round:started' | 'game:rps:action:received' | 'game:rps:timer:cutoff' | 'game:rps:round:reveal' | 'game:rps:round:completed' | 'game:rps:timeout' | 'game:rematch:requested' | 'game:rematch:cancelled' | 'game:rematch:started' | 'game:rematch:lobby:created' | 'game:pot:updated' | 'game:market:price:updated' | 'game:market:order:filled' | 'game:market:resolved' | 'spectator:count:updated' | 'chat:message' | 'chat:reaction' | 'chat:read' | 'chat:typing' | 'notification';
1706
+ type WsEventName = 'lobby:created' | 'lobby:updated' | 'lobby:player:joined' | 'lobby:player:left' | 'lobby:player:connected' | 'lobby:player:disconnected' | 'lobby:bet:updated' | 'lobby:invitation' | 'lobby:deleted' | 'lobby:queue:joined' | 'lobby:queue:cancelled' | 'lobby:matched' | 'lobby:deposit:updated' | 'lobby:typing:start' | 'lobby:typing:stop' | 'game:updated' | 'game:completed' | 'game:paid' | 'game:abandoned' | 'game:turn' | 'game:move' | 'game:state' | 'game:player:connected' | 'game:player:disconnected' | 'game:rps:starting' | 'game:rps:round:started' | 'game:rps:action:received' | 'game:rps:timer:cutoff' | 'game:rps:round:reveal' | 'game:rps:round:completed' | 'game:rps:timeout' | 'game:rematch:requested' | 'game:rematch:cancelled' | 'game:rematch:started' | 'game:rematch:lobby:created' | 'game:pot:updated' | 'game:market:price:updated' | 'game:market:order:filled' | 'game:market:resolved' | 'spectator:count:updated' | 'chat:message' | 'chat:reaction' | 'chat:read' | 'chat:typing' | 'notification';
1628
1707
  type GameTurnPayload = {
1629
1708
  turn: number;
1630
1709
  currentPlayerId: string;
@@ -1727,6 +1806,12 @@ type MarketResolvedPayload = {
1727
1806
  resolvedOutcome: string | null;
1728
1807
  isDraw: boolean;
1729
1808
  };
1809
+ type LobbyDepositUpdatedPayload = {
1810
+ lobbyId: string;
1811
+ userId: string;
1812
+ status: string;
1813
+ allConfirmed: boolean;
1814
+ };
1730
1815
  type WsEvent = {
1731
1816
  event: 'lobby:created';
1732
1817
  payload: Lobby;
@@ -1786,6 +1871,9 @@ type WsEvent = {
1786
1871
  gameType: string;
1787
1872
  matchedLobbies: Lobby[];
1788
1873
  };
1874
+ } | {
1875
+ event: 'lobby:deposit:updated';
1876
+ payload: LobbyDepositUpdatedPayload;
1789
1877
  } | {
1790
1878
  event: 'lobby:typing:start';
1791
1879
  payload: {
@@ -2040,10 +2128,16 @@ interface SubmitDepositResponse {
2040
2128
  signature: string;
2041
2129
  status: string;
2042
2130
  }
2131
+ interface DepositForLobbyResponse {
2132
+ signature: string;
2133
+ status: string;
2134
+ canProceedToQueue: boolean;
2135
+ }
2043
2136
  declare class Escrow {
2044
2137
  private http;
2138
+ private wallet;
2045
2139
  private logger?;
2046
- constructor(http: IHttpClient, logger?: ILogger | undefined);
2140
+ constructor(http: IHttpClient, wallet: Wallet, logger?: ILogger | undefined);
2047
2141
  /**
2048
2142
  * Start the deposit flow for a lobby
2049
2143
  * Transitions the lobby to 'preparing' state
@@ -2054,6 +2148,12 @@ declare class Escrow {
2054
2148
  * Returns an unsigned transaction that needs to be signed by the user
2055
2149
  */
2056
2150
  prepareDepositTransaction(lobbyId: string): Promise<PrepareDepositResponse>;
2151
+ /**
2152
+ * Combined prepare-and-start: validates lobby, transitions waiting→preparing,
2153
+ * initializes depositStatus, and prepares the unsigned transaction in one call.
2154
+ * Eliminates one HTTP round-trip vs startDeposits() + prepareDepositTransaction().
2155
+ */
2156
+ prepareAndStartDeposit(lobbyId: string): Promise<PrepareDepositResponse>;
2057
2157
  /**
2058
2158
  * Submit a signed deposit transaction
2059
2159
  * The transaction will be submitted to the Solana network and confirmed
@@ -2063,6 +2163,27 @@ declare class Escrow {
2063
2163
  * Check the deposit status for all players in a lobby
2064
2164
  */
2065
2165
  getDepositStatus(lobbyId: string): Promise<DepositStatusResponse>;
2166
+ /**
2167
+ * Confirm a deposit that was already sent by the client (signAndSendTransaction path).
2168
+ */
2169
+ confirmDepositSignature(lobbyId: string, signature: string): Promise<{
2170
+ status: string;
2171
+ }>;
2172
+ /**
2173
+ * One-call lobby deposit: prepare-and-start, sign, submit, and poll until
2174
+ * the current user's deposit is confirmed. Requires sdk.wallet.setSigner() to be set.
2175
+ * Returns when all required deposits are confirmed and the lobby can proceed to queue.
2176
+ *
2177
+ * Automatically uses signAndSendTransaction or signTransaction based on signer capability.
2178
+ */
2179
+ depositForLobby(lobbyId: string): Promise<DepositForLobbyResponse>;
2180
+ /**
2181
+ * Zero-polling deposit variant using server-side awaitConfirmation.
2182
+ * 2 HTTP calls total, 0 client-side polling. Ideal for agents.
2183
+ *
2184
+ * Automatically uses signAndSendTransaction or signTransaction based on signer capability.
2185
+ */
2186
+ depositForLobbySync(lobbyId: string): Promise<DepositForLobbyResponse>;
2066
2187
  claimLobbyDepositRefund(lobbyId: string, depositSignature: string): Promise<{
2067
2188
  signature: string;
2068
2189
  status: string;
@@ -2071,25 +2192,6 @@ declare class Escrow {
2071
2192
  signature: string;
2072
2193
  status: string;
2073
2194
  }>;
2074
- /**
2075
- * Submit a signed deposit transaction and wait until the lobby is queued/active.
2076
- *
2077
- * Note: the backend may auto-transition the lobby to the queue once deposits are confirmed.
2078
- * In that case, calling /join-queue from the client would be redundant and can fail with
2079
- * "Current status: queued".
2080
- * @param lobbyId - The lobby ID
2081
- * @param signedTransaction - The signed transaction (base64 encoded)
2082
- * @param lobbies - The lobbies service instance (from sdk.lobbies) to read lobby status
2083
- */
2084
- submitDepositAndJoinQueue(lobbyId: string, signedTransaction: string, lobbies: {
2085
- getLobby: (id: string) => Promise<{
2086
- id: string;
2087
- status: string;
2088
- }>;
2089
- }): Promise<{
2090
- id: string;
2091
- status: string;
2092
- }>;
2093
2195
  }
2094
2196
 
2095
2197
  interface DailyRoom {
@@ -2463,6 +2565,7 @@ type LobbyStoreState = {
2463
2565
  lobbiesById: Record<string, Lobby>;
2464
2566
  matchedEvent: LobbyMatchedEvent | null;
2465
2567
  typingByLobbyId: Record<string, string[]>;
2568
+ depositStatusByLobbyId: Record<string, LobbyDepositUpdatedPayload>;
2466
2569
  };
2467
2570
  type LobbyStore = {
2468
2571
  store: SdkStore<LobbyStoreState>;
@@ -2470,6 +2573,7 @@ type LobbyStore = {
2470
2573
  applyWsEvent: (event: WsEvent) => void;
2471
2574
  joinLobby: (lobbyId: string) => () => void;
2472
2575
  subscribeMatched: (callback: (event: LobbyMatchedEvent) => void) => () => void;
2576
+ subscribeDepositUpdate: (lobbyId: string, callback: (data: LobbyDepositUpdatedPayload) => void) => () => void;
2473
2577
  };
2474
2578
  declare function createLobbyStore(transport: WsTransport): LobbyStore;
2475
2579
 
@@ -2652,9 +2756,11 @@ declare class StandaloneWsTransport extends BaseWsTransport {
2652
2756
  private accessToken;
2653
2757
  private reconnectAttempts;
2654
2758
  private reconnectTimer;
2759
+ private periodicReconnectInterval;
2655
2760
  private maxReconnectAttempts;
2656
2761
  private reconnectDelay;
2657
2762
  private reconnectDelayMax;
2763
+ private static readonly PERIODIC_RECONNECT_MS;
2658
2764
  private wildcardHandlers;
2659
2765
  private eventHandlers;
2660
2766
  private registeredEvents;
@@ -2671,6 +2777,10 @@ declare class StandaloneWsTransport extends BaseWsTransport {
2671
2777
  protected onLeaveRoom(roomName: string): void;
2672
2778
  private ensureSocket;
2673
2779
  private reconnectWithAuth;
2780
+ /** Clear socket reference so ensureSocket() can create a new connection. */
2781
+ private clearSocketForReconnect;
2782
+ private clearPeriodicReconnect;
2783
+ private startPeriodicReconnect;
2674
2784
  private scheduleReconnect;
2675
2785
  private getEventHandlers;
2676
2786
  private unsubscribeEvent;
@@ -2727,4 +2837,4 @@ declare class HttpClient implements IHttpClient {
2727
2837
  private payChallenge;
2728
2838
  }
2729
2839
 
2730
- export { type AcceptChallengeResponse, type Achievement, Activity, type ActivityFeedItem, type ActivityFeedItemType, type ActivityFeedResponse, type ActivityFeedUser, Admin, type AdminDailyStats, type AdminDailyStatsItem, type AdminGameHistory, type AdminGameHistoryFeeBreakdown, type AdminGameHistoryFeePlayer, type AdminGameHistoryPlayer, type AdminMarketDailyStats, type AdminMarketDailyStatsItem, type AdminMarketDetail, type AdminMarketStats, type AdminStats, type AdminWalletActivityItem, type AdminWalletActivityResponse, type ApiError, type AppNotification, type AppNotificationType, type ApplyReferralCodeResponse, type BalanceResponse, type BetOption, type BroadcastTipRequest, BrowserLocalStorage, Challenges, Chat, type ChatContext, type ChatContextType, type ChatMessage, type ChatMessageReply, type ChatMessageType, type ChatReaction, type ChatReadBy, type ChatState, type ChatStore, type ChatStoreState, type ClaimReferralRewardsResponse, type CreateChallengeRequest, type CreateChallengeResponse, type CreateLobbyRequest, type CreateTicketData, type CriticalIncident, type CriticalIncidentCategory, type CriticalIncidentImpactType, type CriticalIncidentSeverity, type CriticalIncidentStatus, type CriticalIncidentSummary, type CurrentGame, Daily, type DailyParticipant, type DailyRoom, type DailyToken, type DepositStatus, type DepositStatusResponse, type DmThread, type DmThreadsStore, type DmThreadsStoreState, type DonateToGameResponse, ESTIMATED_SOL_FEE_LAMPORTS, Escrow, type EscrowSweepPreview, type EscrowSweepRecord, type FaucetResponse, type FeatureFlag, type FriendRequestItem, type FriendsStore, type FriendsStoreState, type FriendshipStatus, type Game, type GameActionsStore, type GameActionsStoreState, type GameHistoryItem, type GameMetrics, type GamePlayer, type GameStateResponse, type GameStore, type GameStoreState, type GameType, Games, type GenerateHandshakeResponse, type GetTicketsOptions, HttpClient, type IHttpClient, type ILogger, type IStorage, type InviteFriendRequest, type LeaderboardEntry, type LeaderboardQuery, type LeaderboardRange, type LeaderboardResponse, Leaderboards, type LivePlayer, type LivePlayersPage, Lobbies, type Lobby, type LobbyMatchedEvent, type LobbyPlayer, type LobbyStore, type LobbyStoreState, type LogLevel, type LoginResponse, MIN_SOL_TRANSFER_AMOUNT, MIN_TRANSFER_AMOUNT, type MarketBuyResult, type MarketPosition, type MarketSellResult, type MarketState, Markets, type MoneyMinor, NodeStorage, type NotificationEvent, type NotificationsStore, type NotificationsStoreState, type PaginatedCriticalIncidents, type PaginatedFriends, type PaginatedNotificationsResponse, type PaginatedPlatformFees, type PaginatedReports, type PaginatedSearchUsers, type PaginatedSessions, type PaginatedSupportTickets, type PaginatedUsers, type PaymentRequiredChallenge, type PlatformFeeItem, type PrepareDepositResponse, type PrepareTipRequest, type PrepareTipResponse, type PrepareTransferRequest, type PrepareTransferResponse, type PublicUser, type QueueStats, type RedeemResult, type ReferralRewardItem, type ReferralRewardStatus, type ReferralRewardsResponse, type ReferralSummary, type ReferralTreeItem, type ReferralTreeResponse, Referrals, type Report, type ReportCount, type ReportStatus, type ReportUser, Reports, type RetryOptions, SDK, type SDKConfig, SDK_VERSION, SOL_DECIMALS, SOL_MINT, type SdkStore, type SdkUpgradeInfo, type SearchUser, type SendMessageRequest, type SendTipResponse, type SendTransferResponse, type Session, SharedWorkerTransport, Spectate, type SpectatorMetrics, type SpectatorMetricsByUser, StandaloneWsTransport, type SubmitDepositResponse, type SubmitTransferRequest, type SubmitTransferResponse, Support, type SupportMessage, type SupportMessageSenderRole, type SupportTicket, type SupportTicketCategory, type SupportTicketPriority, type SupportTicketStatus, type SupportTicketUser, type SystemMessageType, TOKEN_KEY, TRANSFER_FEE_MINOR, Tips, type TransferToken, type TypingUser, type UpdateTicketData, type User, type UserAchievement, type UserActivity, type UserActivityStatus, type UserStats, type UsernameAvailabilityResponse, Users, type ValidAction, Wallet, type WalletActivityCounterpartyType, type WalletActivityDirection, type WalletActivityItem, type WalletActivityKind, type WalletActivityResponse, type WalletActivityStatus, type WalletClaimAction, type WalletMeta, type WalletResponse, type WalletSigner, type WsEvent, WsEventBus, type WsEventName, type WsTransport, type ConnectionState as WsTransportState, createChatStore, createDmThreadsStore, createFriendsStore, createGameActionsStore, createGameStore, createLobbyStore, createLogger, createNotificationsStore, createSdkStore, isRetryableError, logger, withRetry };
2840
+ export { type AcceptChallengeResponse, type Achievement, Activity, type ActivityFeedItem, type ActivityFeedItemType, type ActivityFeedResponse, type ActivityFeedUser, Admin, type AdminDailyStats, type AdminDailyStatsItem, type AdminGameHistory, type AdminGameHistoryFeeBreakdown, type AdminGameHistoryFeePlayer, type AdminGameHistoryPlayer, type AdminMarketDailyStats, type AdminMarketDailyStatsItem, type AdminMarketDetail, type AdminMarketStats, type AdminStats, type AdminWalletActivityItem, type AdminWalletActivityResponse, type ApiError, type AppNotification, type AppNotificationType, type ApplyReferralCodeResponse, type BalanceResponse, type BetOption, type BroadcastTipRequest, BrowserLocalStorage, Challenges, Chat, type ChatContext, type ChatContextType, type ChatMessage, type ChatMessageReply, type ChatMessageType, type ChatReaction, type ChatReadBy, type ChatState, type ChatStore, type ChatStoreState, type ClaimReferralRewardsResponse, type CreateChallengeRequest, type CreateChallengeResponse, type CreateLobbyRequest, type CreateTicketData, type CriticalIncident, type CriticalIncidentCategory, type CriticalIncidentImpactType, type CriticalIncidentSeverity, type CriticalIncidentStatus, type CriticalIncidentSummary, type CurrentGame, Daily, type DailyParticipant, type DailyRoom, type DailyToken, type DepositForLobbyResponse, type DepositStatus, type DepositStatusResponse, type DmThread, type DmThreadsStore, type DmThreadsStoreState, type DonateToGameResponse, ESTIMATED_SOL_FEE_LAMPORTS, Escrow, type EscrowSweepPreview, type EscrowSweepRecord, type FaucetResponse, type FeatureFlag, type FriendRequestItem, type FriendsStore, type FriendsStoreState, type FriendshipStatus, type Game, type GameActionsStore, type GameActionsStoreState, type GameHistoryItem, type GameMetrics, type GamePlayer, type GameStateResponse, type GameStore, type GameStoreState, type GameType, Games, type GenerateHandshakeResponse, type GetTicketsOptions, HttpClient, type IHttpClient, type ILogger, type IStorage, type InviteFriendRequest, type LeaderboardEntry, type LeaderboardQuery, type LeaderboardRange, type LeaderboardResponse, Leaderboards, type LivePlayer, type LivePlayersPage, Lobbies, type Lobby, type LobbyDepositUpdatedPayload, type LobbyMatchedEvent, type LobbyPlayer, type LobbyStore, type LobbyStoreState, type LogLevel, type LoginResponse, MIN_SOL_TRANSFER_AMOUNT, MIN_TRANSFER_AMOUNT, type MarketBuyResult, type MarketPosition, type MarketSellResult, type MarketState, Markets, type MoneyMinor, NodeStorage, type NotificationEvent, type NotificationsStore, type NotificationsStoreState, type PaginatedCriticalIncidents, type PaginatedFriends, type PaginatedNotificationsResponse, type PaginatedPlatformFees, type PaginatedReports, type PaginatedSearchUsers, type PaginatedSessions, type PaginatedSupportTickets, type PaginatedTransactionJobs, type PaginatedUsers, type PaymentRequiredChallenge, type PlatformFeeItem, type PrepareDepositResponse, type PrepareTipRequest, type PrepareTipResponse, type PrepareTransferRequest, type PrepareTransferResponse, type PublicUser, type QueueStats, type RedeemResult, type ReferralRewardItem, type ReferralRewardStatus, type ReferralRewardsResponse, type ReferralSummary, type ReferralTreeItem, type ReferralTreeResponse, Referrals, type Report, type ReportCount, type ReportStatus, type ReportUser, Reports, type RetryOptions, SDK, type SDKConfig, SDK_VERSION, SOL_DECIMALS, SOL_MINT, type SdkStore, type SdkUpgradeInfo, type SearchUser, type SendMessageRequest, type SendTipResponse, type SendTransferResponse, type Session, SharedWorkerTransport, Spectate, type SpectatorMetrics, type SpectatorMetricsByUser, StandaloneWsTransport, type SubmitDepositResponse, type SubmitTransferRequest, type SubmitTransferResponse, Support, type SupportMessage, type SupportMessageSenderRole, type SupportTicket, type SupportTicketCategory, type SupportTicketPriority, type SupportTicketStatus, type SupportTicketUser, type SystemMessageType, TOKEN_KEY, TRANSFER_FEE_MINOR, Tips, type TransactionJob, type TransactionJobStatus, type TransactionJobType, type TransactionQueueStats, type TransferToken, type TypingUser, type UpdateTicketData, type User, type UserAchievement, type UserActivity, type UserActivityStatus, type UserStats, type UsernameAvailabilityResponse, Users, type ValidAction, Wallet, type WalletActivityCounterpartyType, type WalletActivityDirection, type WalletActivityItem, type WalletActivityKind, type WalletActivityResponse, type WalletActivityStatus, type WalletClaimAction, type WalletMeta, type WalletResponse, type WalletSigner, type WsEvent, WsEventBus, type WsEventName, type WsTransport, type ConnectionState as WsTransportState, createChatStore, createDmThreadsStore, createFriendsStore, createGameActionsStore, createGameStore, createLobbyStore, createLogger, createNotificationsStore, createSdkStore, isRetryableError, logger, withRetry };