import { Socket } from './socket';
export interface Rooms {
    [key: string]: Array<Socket>;
}
export declare class WebSocketRooms {
    private rooms;
    /**
     * Return rooms object
     *
     * @returns {Rooms} rooms
     */
    getRooms(): Rooms;
    /**
     * Test if a room already exists
     *
     * @param {string} room
     * @return boolean
     */
    exists(room: string): boolean;
    /**
     * Join a room with a socket
     *
     * @param {string} room
     * @param {Socket} socket
     * @returns Socket
     */
    join(room: string, socket: Socket): Socket;
    /**
     * Leave room with a socket
     *
     * @param {string} room
     * @param {Socket} socket
     * @returns Socket
     */
    leave(room: string, socket: Socket): Socket;
    /**
     * Emit a message to one room
     *
     * @param {string} room
     * @param {string} event
     * @param {any} data
     * @returns WebSocketRooms
     */
    emit(room: string, event: string, data: any): WebSocketRooms;
}
