import BrowserSession from '../BrowserSession';
import Call from './Call';
import Peer from './Peer';
import { Direction, State } from './constants';
import { AnswerParams, IVertoCallOptions, IWebRTCCall } from './interfaces';
export default abstract class BaseCall implements IWebRTCCall {
    protected session: BrowserSession;
    private _webRTCStats;
    id: string;
    state: string;
    prevState: string;
    direction: Direction;
    peer: Peer;
    options: IVertoCallOptions;
    cause: string;
    causeCode: number;
    sipReason: string;
    sipCode: number;
    sipCallId: string;
    channels: string[];
    role: string;
    extension: string;
    private _state;
    private _prevState;
    private gotAnswer;
    private gotEarly;
    private _lastSerno;
    private _targetNodeId;
    private _iceTimeout;
    private _iceDone;
    private _ringtone;
    private _ringback;
    private _statsBindings;
    private _statsIntervalId;
    constructor(session: BrowserSession, opts?: IVertoCallOptions);
    get nodeId(): string;
    set nodeId(what: string);
    get telnyxIDs(): {
        telnyxCallControlId: string;
        telnyxSessionId: string;
        telnyxLegId: string;
    };
    get localStream(): MediaStream;
    get remoteStream(): MediaStream;
    get memberChannel(): string;
    invite(): void;
    answer(params?: AnswerParams): void;
    playRingtone(): void;
    stopRingtone(): void;
    playRingback(): void;
    stopRingback(): void;
    hangup(): void;
    hangup(hangupParams: any, hangupExecute: any): void;
    hold(): Promise<any>;
    unhold(): Promise<any>;
    toggleHold(): Promise<any>;
    dtmf(dtmf: string): void;
    message(to: string, body: string): void;
    muteAudio(): void;
    unmuteAudio(): void;
    toggleAudioMute(): void;
    setAudioInDevice(deviceId: string): Promise<void>;
    muteVideo(): void;
    unmuteVideo(): void;
    toggleVideoMute(): void;
    setVideoDevice(deviceId: string): Promise<void>;
    deaf(): void;
    undeaf(): void;
    toggleDeaf(): void;
    setBandwidthEncodingsMaxBps(max: number, _kind: string): Promise<void>;
    setAudioBandwidthEncodingsMaxBps(max: number): void;
    setVideoBandwidthEncodingsMaxBps(max: number): void;
    getStats(callback: Function, constraints: any): void;
    setState(state: State): void;
    handleMessage(msg: any): void;
    handleConferenceUpdate(packet: any, initialPvtData: any): Promise<string>;
    _addChannel(channel: string): void;
    private _subscribeConferenceChat;
    private _subscribeConferenceInfo;
    private _confControl;
    private _subscribeConferenceModerator;
    private _handleChangeHoldStateSuccess;
    private _handleChangeHoldStateError;
    private _onRemoteSdp;
    private _requestAnotherLocalDescription;
    private _onIceSdp;
    private _onIce;
    private _registerPeerEvents;
    private _checkConferenceSerno;
    private _onMediaError;
    private _dispatchConferenceUpdate;
    private _dispatchNotification;
    private _execute;
    private _init;
    protected _finalize(): void;
    private _startStats;
    private _stopStats;
    private _doStats;
    static setStateTelnyx: (call: Call) => Call;
}
