import { Game } from "./Game";
import { Room } from "./Room";
import { User } from "./User";
export interface IRoomMakerDict {
    [name: string]: any;
}
export interface IGamePlayerMakerDict {
    [name: string]: any;
}
export declare class RoomManager {
    private dictMaker;
    private classMaker;
    private rooms;
    constructor(dictMaker: IRoomMakerDict, classMaker: IGamePlayerMakerDict);
    makeRoom(type: string, game: Game, players: number): Room;
    findByPlayer(p: User): Room | undefined;
    add(room: Room): void;
    remove(room: Room): void;
    count(): number;
    find(roomId: string): Room<import("./Player").Player> | undefined;
    toClient(): {
        count: number;
        id: string;
        isPlaying: boolean;
        owner: {
            id: string;
            name: string;
            playing: boolean | null;
            turn: {} | null;
        } | null;
        total: number;
        type: string;
    }[];
}
