import { InternalEventEmitter, PublicEventEmitter } from '../modules';
import { SignallingClientOptions } from '../types';
import { TalkMessageStreamPayload } from '../types/signalling/TalkMessageStreamPayload';
export declare class SignallingClient {
    private publicEventEmitter;
    private internalEventEmitter;
    private url;
    private sessionId;
    private heartbeatIntervalSeconds;
    private maxWsReconnectionAttempts;
    private stopSignal;
    private sendingBuffer;
    private wsConnectionAttempts;
    private socket;
    private heartBeatIntervalRef;
    constructor(sessionId: string, options: SignallingClientOptions, publicEventEmitter: PublicEventEmitter, internalEventEmitter: InternalEventEmitter);
    stop(): void;
    connect(): WebSocket;
    sendOffer(localDescription: RTCSessionDescription): Promise<void>;
    sendIceCandidate(candidate: RTCIceCandidate): Promise<void>;
    private sendSignalMessage;
    sendTalkMessage(payload: TalkMessageStreamPayload): Promise<void>;
    private closeSocket;
    private onOpen;
    private onClose;
    private onError;
    private flushSendingBuffer;
    private onMessage;
    private startSendingHeartBeats;
}
//# sourceMappingURL=SignallingClient.d.ts.map