import { AbstractWebsocket, SocketQuery, SocketUpdateProperties } from './AbstractSocket'; import { RpgContext, RpgProvider } from '@rpgjs/common'; export interface MmorpgOptions { host?: string; /** Initial lobby room used before the first map transfer. */ room?: string; connectionId?: string; connectionIdScope?: "local" | "session" | "ephemeral"; query?: SocketQuery | (() => SocketQuery | undefined); socketOptions?: Record; /** * Time allowed for a room to restore and send the RPGJS acceptance packet. * Increase this for cold edge rooms or local Durable Object startup. * Defaults to 10 seconds. */ connectionAcceptanceTimeoutMs?: number; /** Render the client and its GUIs before opening the initial WebSocket. */ deferConnection?: boolean; } export declare class BridgeWebsocket extends AbstractWebsocket { protected context: RpgContext; private options; readonly mode: "mmorpg"; readonly deferConnection: boolean; private socket; private privateId; private pendingOn; private acceptedOpenListeners; private targetRoom; private transferQuery?; private targetHost?; constructor(context: RpgContext, options?: MmorpgOptions); private resolveConnectionId; private resolveQuery; connection(listeners?: (data: any) => void): Promise; on(key: string, callback: (data: any) => void): void; off(event: string, callback: (data: any) => void): void; emit(event: string, data: any): void; private attachEvent; private emitAcceptedOpen; updateProperties({ room, host, query }: SocketUpdateProperties): void; private isNativeSocketEvent; reconnect(_listeners?: (data: any) => void): Promise; disconnect(): void; getCurrentRoom(): string; } export declare function provideMmorpg(options: MmorpgOptions): RpgProvider[];