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