import { Turn } from "./model/turn";
export declare class RahatLineWebRTCPeerConnection {
    private _pc;
    private readonly _allowToRecvVideo;
    private readonly _allowToRecvAudio;
    private readonly _lockGetStream;
    private readonly _rtpSenders;
    private _localWebCamStream;
    private _currentVideoQuality;
    private _localMicrophoneStream;
    private _localCanvasMediaStream;
    private _localScreenCaptureStream;
    TriggerLocalWebcam: () => void | undefined;
    OnIceCandidate: ((ice: RTCIceCandidate) => void) | undefined;
    OnRemoveTrack: ((id: string, type: string) => void) | undefined;
    OnNewTrack: ((id: string, type: string, stream: MediaStream) => void) | undefined;
    OnConnectionStateChanged: ((connectionState: RTCPeerConnectionState) => void) | undefined;
    constructor(turnInfo: Turn[], allowToRecvAudio: boolean, allowToRecvVideo: boolean);
    get LocalScreenShareStream(): MediaStream | undefined;
    get LocalMicrophoneStream(): MediaStream | undefined;
    get LocalWebcamStream(): MediaStream | undefined;
    get LocalCanvasStream(): MediaStream | undefined;
    Close(): void;
    CompleteLocalNegotiation(serverAnswer: RTCSessionDescription): Promise<void>;
    Negotiate(serverOffer?: RTCSessionDescription | undefined): Promise<RTCSessionDescription>;
    StartAudioInputStream(): Promise<void>;
    StopAudioInputStream(): Promise<void>;
    StartWebCamStream(): Promise<void>;
    StopWebCamStream(): Promise<void>;
    StartScreenShareStream(): Promise<void>;
    StopScreenShareStream(): Promise<void>;
    StartStreamCanvas(canvas: HTMLCanvasElement, frameRate: number): Promise<void>;
    StopStreamCanvas(): Promise<void>;
    private _GetCurrentVideoQuality;
    private _AddStreamTrack;
    private _StopLocalStream;
    private _RemoveStreamTrack;
    private _TriggerVideoReplaceTrack;
    private _CreateOffer;
    private _RequireToChangeQuality;
    private _GetMediaStream;
    private _CreateAnswer;
}
//# sourceMappingURL=webrtc.d.ts.map