import { GameBackendClient } from '../v1/BackendClient.js'; import { GameDataClient } from '../v1/GameDataClient.js'; import { GameRoomsClient } from '../v1/GameRoomsClient.js'; import { GameLLM } from '../v1/LLM.js'; import { GameMediaClient } from '../v1/MediaClient.js'; import { GameUploads, type GameUploadsOptions } from '../v1/Uploads.js'; import type { BackendTransport, ControlTransport, HostAppActions } from '../v1/types.js'; export interface GameSdkOptions { bootstrap: () => Promise; exchange: (launch: unknown) => Promise; transportFactory: { createControlTransport(session: unknown): ControlTransport; createBackendTransport?(session: unknown, gameId: string): BackendTransport; }; app?: HostAppActions; gameId?: string; } export type GameSdkState = 'idle' | 'initializing' | 'ready' | 'failed'; /** Client SDK for game-owned HTTP/WebSocket backends. */ export declare class GameSdk { private readonly options; private session?; private initialization?; private backendClient?; private dataClient?; private roomsClient?; private mediaClient?; private currentState; readonly app?: HostAppActions; constructor(options: GameSdkOptions); get state(): GameSdkState; get gameId(): string | undefined; get userId(): string | null; ready(): Promise; control(): ControlTransport; backend(): GameBackendClient; /** Declarative CRUD collections provided by a `kind: data` backend. */ data(): GameDataClient; gameRooms(): GameRoomsClient; media(): GameMediaClient; llm(): GameLLM; uploads(options?: GameUploadsOptions): GameUploads; private requireSession; }