import { SignalingRegistrationInfo } from "../shared/types";
import { UserInfo } from "./signaling-connection";
import { DocAdapter } from "./doc-adapter";
import { DataChannelProvider } from "./data-channel-provider";
import { PeerConnection } from "./peer-connection";
export declare class Room {
    private roomName;
    private options;
    private peerFactory;
    private users;
    private connections;
    private adapters;
    constructor(roomName: string, options: RoomOptions, peerFactory: DataChannelProvider);
    getRegistrationInfo(): SignalingRegistrationInfo;
    addUsers(users: UserInfo[]): Promise<void>;
    private setConnection;
    addConnection(connection: PeerConnection): PeerConnection;
    addAdapter(docAdapter: DocAdapter): void;
    disconnect(): void;
}
export declare type RoomOptions = {
    token?: string;
    user: string;
    maxConnections?: number;
    useBroadcast?: boolean;
    peerOpts?: RTCConfiguration;
};
