///
import Clock = require('@gamestdio/clock');
import { Signal } from 'signals.js';
import { StateContainer } from '@gamestdio/state-listener';
import { Connection } from './Connection';
export interface RoomAvailable {
roomId: string;
clients: number;
maxClients: number;
metadata?: any;
}
export declare class Room extends StateContainer {
id: string;
sessionId: string;
name: string;
options: any;
clock: Clock;
remoteClock: Clock;
onJoin: Signal;
onStateChange: Signal;
onMessage: Signal;
onError: Signal;
onLeave: Signal;
connection: Connection;
private _previousState;
constructor(name: string, options?: any);
connect(connection: Connection): void;
leave(): void;
requestLeave(): void;
send(data: any): void;
removeAllListeners(): void;
protected onMessageCallback(event: any): void;
setState(encodedState: Buffer, remoteCurrentTime?: number, remoteElapsedTime?: number): void;
patch(binaryPatch: any): void;
}