import { ClientInfo } from "../model/client_info";
import { Client } from "../model/client_model";
import { NewClientJoinedToRoom } from "../model/messages/NewClientJoined";
import { SessionDescription } from "../model/session_description";
import { Signaling } from "./interface";
export declare class WebSocketSignaling implements Signaling {
    OnModuleData: ((issue: string, data: any) => void) | undefined;
    OnServerSendOffer: ((sdp: SessionDescription) => void) | undefined;
    OnServerSendAnswer: ((sdp: SessionDescription) => void) | undefined;
    OnNewClientJoined: ((client: Client) => void) | undefined;
    OnClientLeave: ((client: Client) => void) | undefined;
    OnClientChangeMicrophoneStatus: ((enabled: boolean, client: Client) => void) | undefined;
    OnCloseConnection: (() => void) | undefined;
    OnJoinedInRoom: ((room: NewClientJoinedToRoom) => void) | undefined;
    OnBroadcastReceived: ((clientId: string, data: any) => void) | undefined;
    private _clientsLock;
    private readonly _url;
    private _clientInfo?;
    private _clients;
    private _wsConnection;
    private _connectionPromiseSource;
    constructor(address: string, token: string, port: number, url: string, protocol: "ws" | "wss");
    BroadcastMessage(data: any): void;
    get Clients(): ReadonlyArray<Client>;
    Close(): void;
    Connect(): Promise<ClientInfo>;
    SendMyOffer(sdp: SessionDescription): void;
    SendMyAnswer(sdp: SessionDescription): void;
    SendMyIceCandidate(ice: RTCIceCandidate): void;
    DisableLiveTranslation(): void;
    EnableLiveTranslation(srcLang: string, dst: string): void;
    DisableCaption(): void;
    EnableCaption(state: "caption" | "translate", srcLang: string, dst: string): void;
    private OnMessage;
    private OnWebSocketClientInfoEventCalled;
    private OnWebSocketNewClientJoinedEventCalled;
    private OnWebSocketClientLeaveEventCalled;
    private JoinToRoomCompleted;
    private SendMessage;
}
//# sourceMappingURL=web_socket.d.ts.map