import { Room, Client, PatchListener, ITrackerParams, IJsonPatch } from "../internal"; interface IRelayRoomPlayer { data: any; connected: boolean; } interface IRelayRoomState { players: { [id: string]: IRelayRoomPlayer; }; [key: string]: any; } export declare class RelayRoom extends Room { maxPlayers: number; reconnectionTimeout: number; state: IRelayRoomState; listeners: Map>; createState(): any; createPatchTracker(): { onPatch: (listener: PatchListener, params: any) => () => void; snapshot: () => IRelayRoomState; dispose: () => void; decodeMap: () => void; }; startTracking(client: Client, params?: ITrackerParams): void; onCreate(params: any): void; onJoin(client: Client, params: any): void; onMessage(client: Client, type: string, data: any): void; onLeave(client: Client, consented?: boolean): Promise; onClose(): void; patchState(client: Client, patch: IJsonPatch): void; updateRoom(client: Client, update: any): void; sendMessage(client: Client, data: any): void; broadcastPatch(client: Client, patch: IJsonPatch): void; addPlayer(client: Client, params?: any): void; removePlayer(client: Client): void; setPlayerConection(client: Client, value: boolean): void; } export {};