import IPeerConnection from './IPeerConnection';
import { ILegacyRTCStatsReport } from './RtcConnectionMonitor';
declare class VanillaPeerConnection implements IPeerConnection {
    private readonly _logger;
    private _peerConnection;
    constructor(configuration?: RTCConfiguration);
    get native(): RTCPeerConnection | null;
    get currentLocalDescription(): RTCSessionDescription | null;
    get currentRemoteDescription(): RTCSessionDescription | null;
    get connectionState(): RTCPeerConnectionState | null;
    get iceConnectionState(): RTCIceConnectionState | null;
    get supportsGetConfiguration(): boolean;
    get supportsSetConfiguration(): boolean;
    get supportsGetTransceivers(): boolean;
    get supportsAddTransceiver(): boolean;
    createOffer(options?: RTCOfferOptions): Promise<RTCSessionDescriptionInit>;
    createAnswer(options?: RTCAnswerOptions): Promise<RTCSessionDescriptionInit>;
    setLocalDescription(description: RTCSessionDescriptionInit): Promise<void>;
    setRemoteDescription(description: RTCSessionDescriptionInit): Promise<void>;
    getSenders(): RTCRtpSender[];
    getReceivers(): RTCRtpReceiver[];
    getStats(selector?: MediaStreamTrack | null): Promise<RTCStatsReport>;
    getStatsLegacy(): Promise<ILegacyRTCStatsReport>;
    addEventListener<T extends keyof RTCPeerConnectionEventMap>(type: T, listener: (this: RTCPeerConnection, event: RTCPeerConnectionEventMap[T]) => unknown, options?: boolean | AddEventListenerOptions): void;
    removeEventListener<T extends keyof RTCPeerConnectionEventMap>(type: T, listener: (this: RTCPeerConnection, event: RTCPeerConnectionEventMap[T]) => unknown, options?: boolean | AddEventListenerOptions): void;
    getTransceivers(): RTCRtpTransceiver[];
    addTransceiver(name: string, options: RTCRtpTransceiverInit): RTCRtpTransceiver;
    addStream(mediaStream: MediaStream): void;
    getConfiguration(): RTCConfiguration;
    setConfiguration(configuration: RTCConfiguration): void;
    set ontrack(handler: ((this: RTCPeerConnection, event: RTCTrackEvent) => unknown) | null);
    get ontrack(): ((this: RTCPeerConnection, event: RTCTrackEvent) => unknown) | null;
    set onicecandidate(handler: ((this: RTCPeerConnection, event: RTCPeerConnectionIceEvent) => unknown) | null);
    get onicecandidate(): ((this: RTCPeerConnection, event: RTCPeerConnectionIceEvent) => unknown) | null;
    set onconnectionstatechange(handler: ((this: RTCPeerConnection, event: Event) => unknown) | null);
    get onconnectionstatechange(): ((this: RTCPeerConnection, event: Event) => unknown) | null;
    set oniceconnectionstatechange(handler: ((this: RTCPeerConnection, event: Event) => unknown) | null);
    get oniceconnectionstatechange(): ((this: RTCPeerConnection, event: Event) => unknown) | null;
    close(): void;
    dispose(): void;
}
export default VanillaPeerConnection;
