/// <reference types="node" />
/// <reference types="node" />
import { LoxonePlatform } from '../../LoxonePlatform';
export interface LoxoneTalkbackOptions {
    platform: LoxonePlatform;
    cameraName: string;
    signalingBaseUrl: string;
    username: string;
    getToken: () => string | undefined;
    onIncomingPcm?: (chunk: Buffer) => void;
}
export declare class LoxoneTalkbackSession {
    private readonly options;
    private readonly rpcTimeoutMs;
    private readonly authMethod;
    private readonly wsProtocol;
    private readonly pcmSampleRate;
    private readonly pcmChannelCount;
    private readonly pcmBitsPerSample;
    private readonly pcmFramesPerChunk;
    private socket?;
    private wrtc?;
    private peerConnection?;
    private audioSource?;
    private audioSink?;
    private localTrack?;
    private rpcId;
    private pendingRpc;
    private localIceQueue;
    private remoteIceQueue;
    private peerReady;
    private stopped;
    private started;
    private pcmBuffer;
    private authChallengeTimer?;
    private readyPromise?;
    private resolveReady?;
    private rejectReady?;
    constructor(options: LoxoneTalkbackOptions);
    start(): Promise<void>;
    pushPcmChunk(chunk: Buffer): void;
    stop(): void;
    private connectAndAuthorize;
    private getDeviceInfo;
    private initializePeerConnection;
    private applyRemoteAnswer;
    private negotiateCallWithFallbackModes;
    private flushQueuedIceCandidates;
    private sendLocalIceCandidate;
    private handleSocketMessage;
    private handleRpcRequest;
    private handleNotification;
    private handleRpcResponse;
    private onRemoteIceCandidate;
    private createAuthResponse;
    private createRsaPublicKey;
    private createRsaPublicKeyFromComponents;
    private createRsaPublicKeyFromText;
    private callRpc;
    private sendNotification;
    private sendRpcSuccess;
    private sendRpcError;
    private sendJson;
    private isSocketOpen;
    private rejectAllPendingRpc;
    private resolveReadyPromise;
    private rejectReadyPromise;
    private clearAuthTimers;
    private toWsUrl;
    private normalizeSessionDescription;
    private buildReorderedAnswerCandidates;
    private splitSdpSections;
    private getSdpMediaType;
    private getSdpMid;
    private reorderSectionsByMid;
    private reorderSectionsByType;
    private composeSdpWithOrderedSections;
    private rewriteBundleLine;
    private permuteSections;
    private describeSdpMlineOrder;
    private rawDataToString;
    private stringValue;
    private numberValue;
    private toMonoPcm;
    private hexToBase64Url;
    private bigIntValueToBase64Url;
    private decodeBinaryKeyCandidates;
    private decodeBase64Like;
    private bigIntToBuffer;
    private bufferToBase64Url;
    private loadWrtcModule;
}
//# sourceMappingURL=LoxoneTalkback.d.ts.map