export interface RealtimeSimulationDescriptor { adapter: string; version: string; protocol: string; tick_hz: number; } export interface RuntimeCapabilities { matchmaking?: string; delta_protocol?: string; max_frame_bytes?: number; room_modes?: string[]; realtime_simulation?: boolean; realtime_simulation_game_id?: string; realtime_simulation_descriptor?: RealtimeSimulationDescriptor; stream_sender?: boolean; data?: boolean; } export type RealtimeSimulationUnavailableReason = 'unavailable' | 'unscoped' | 'wrong-game' | 'missing-descriptor'; export declare class RealtimeSimulationUnavailableError extends Error { readonly gameId: string; readonly reason: RealtimeSimulationUnavailableReason; readonly name = "RealtimeSimulationUnavailableError"; readonly code = "REALTIME_SIMULATION_UNAVAILABLE"; constructor(gameId: string, reason: RealtimeSimulationUnavailableReason); } export declare function requireRealtimeSimulationCapability(gameId: string | undefined, capability: RuntimeCapabilities): RealtimeSimulationDescriptor;