import BrowserSession from '../BrowserSession';
import { PeerType } from './constants';
import { IVertoCallOptions } from './interfaces';
export default class Peer {
    type: PeerType;
    private options;
    instance: RTCPeerConnection;
    onSdpReadyTwice: Function;
    private _constraints;
    private statsReporter;
    private _session;
    private _negotiating;
    constructor(type: PeerType, options: IVertoCallOptions, session: BrowserSession);
    get isOffer(): boolean;
    get isAnswer(): boolean;
    get isDebugEnabled(): boolean;
    get debugOutput(): "socket" | "file";
    startNegotiation(): void;
    private _logTransceivers;
    private handleSignalingStateChangeEvent;
    private handleNegotiationNeededEvent;
    private handleTrackEvent;
    private handleConnectionStateChange;
    private createPeerConnection;
    private _handleIceConnectionStateChange;
    private _handleIceGatheringStateChange;
    private _init;
    private _getSenderByKind;
    private _checkMediaToNegotiate;
    private _createOffer;
    private _setRemoteDescription;
    private _createAnswer;
    private _setLocalDescription;
    private _setAudioCodec;
    private _sdpReady;
    private _retrieveLocalStream;
    private _isOffer;
    private _isAnswer;
    private _config;
    close(): Promise<void>;
}
