sinch-rtc
Version:
RTC JavaScript/Web SDK
67 lines (66 loc) • 2.61 kB
TypeScript
import { MediaController } from "./MediaController";
import { PeerConnectionObserver } from "./PeerConnectionObserver";
import { DefaultCall } from "../calling";
import { ClientEventsCollector } from "../calling/reporting/ClientEventsCollector";
export type TrackKind = "audio" | "video";
export declare enum IceTransportPolicy {
Relay = "relay",
All = "all"
}
export declare enum IceConnectionState {
New = "new",
Checking = "checking",
Connected = "connected",
Completed = "completed",
Failed = "failed",
Disconnected = "disconnected",
Closed = "closed"
}
export declare const MAX_WAIT_DISCONNECTED_PC: number;
/**
* Class that wraps original RTCPeerConnection member of browser WebRTC components
*/
export declare class PeerConnection {
private observer;
private rtcConfiguration;
private inactivate;
private clientEventsCollector;
private userInstanceId?;
private originalOffer?;
pc: RTCPeerConnection;
localDescription?: RTCSessionDescriptionInit;
remoteDescription?: RTCSessionDescriptionInit;
private pendingRemoteCandidates;
private localCandidates;
private timeoutID;
constructor(observer: PeerConnectionObserver | null, rtcConfiguration: RTCConfiguration, inactivate: typeof DefaultCall.prototype.inactivate, clientEventsCollector: ClientEventsCollector, userInstanceId?: string | undefined, originalOffer?: RTCSessionDescriptionInit | undefined);
private logClientEvents;
getIceConnectionState: () => IceConnectionState;
private notifyCurrentIceStateObserver;
private handleInactivateTimerState;
private whenRecovered;
private whenDisconnectedOrFailed;
clearAnyScheduledTimer(): void;
close(): void;
private setTimerToInactivate;
private get transceivers();
enableSenderTracks(enabled: boolean, kind: TrackKind): void;
private getSenders;
insertDtmf(tones: string): boolean;
setLocalMedia(media: MediaController): void;
private replaceLocalMedia;
private replaceSenderTrack;
private logIceState;
private onLocalIceCandidate;
get instanceId(): string | undefined;
set instanceId(instanceId: string | undefined);
addIceCandidate: (candidate: RTCIceCandidateInit) => void;
private applyPendingRemoteCandidates;
private createPeerConnection;
private setPendingRemoteDesription;
private setLocalDescription;
createOffer(): Promise<void>;
createAnswer(): Promise<RTCSessionDescriptionInit>;
private pendingRemoteDescription?;
setRemoteDescription(sd: RTCSessionDescriptionInit): Promise<void>;
}