sinch-rtc
Version:
RTC JavaScript/Web SDK
64 lines (63 loc) • 3.22 kB
TypeScript
import { Event } from "../utils/Event";
import { JsepMessage } from "../session/jsep";
import { MediaController } from "./MediaController";
import { IceConnectionState, TrackKind } from "./PeerConnection";
import { PeerConnectionObserver } from "./PeerConnectionObserver";
import { DefaultCall } from "../calling";
import { RTCIceServerExtended } from "./IceServer";
import { ClientEventsCollector } from "../calling/reporting/ClientEventsCollector";
import { PeerConnectionClientObserver } from "./PeerConnectionClientObserver";
export declare class PeerConnectionClient implements PeerConnectionObserver {
private mediaController;
private trackEvent;
private useRelayIceCandidatesOnly;
private inactivate;
private clientEventsCollector;
private observer;
private iceServers?;
private readonly DUMMY_INSTANCE_ID;
private peerConnections;
onLocalJsepMessage: Event<JsepMessage>;
remoteStreams: Map<string, MediaStream[]>;
private remoteMediaStream;
private pendingTracks;
private pendingRelayCandidates;
private originalOffer?;
private instanceId?;
private shouldNotifyIceStateChanges;
private certificate?;
private enabledTracks;
static create(media: MediaController, trackEvent: Event<MediaStreamTrack>, useRelayIceCandidatesOnly: boolean, inactivate: typeof DefaultCall.prototype.inactivate, clientEventsCollector: ClientEventsCollector, observer: PeerConnectionClientObserver, iceServers?: RTCIceServerExtended[]): PeerConnectionClient;
constructor(mediaController: MediaController, trackEvent: Event<MediaStreamTrack>, useRelayIceCandidatesOnly: boolean, inactivate: typeof DefaultCall.prototype.inactivate, clientEventsCollector: ClientEventsCollector, observer: PeerConnectionClientObserver, iceServers?: RTCIceServerExtended[] | undefined);
setIceServers(iceServers: RTCIceServerExtended[]): void;
private createCertificate;
onCallAnswered(_: DefaultCall): void;
onCallEstablished(_: DefaultCall): void;
enableSenderTracks(enabled: boolean, kind: TrackKind): void;
updateMediaController(media: MediaController): void;
start(): Promise<void>;
onSessionDescriptionCreated(sd: RTCSessionDescriptionInit): void;
onSessionDescriptionFailed: (error: Error) => void;
onTrack: (evt: RTCTrackEvent, instanceId: string) => void;
insertDtmf(tones: string): Promise<boolean>;
private addPendingTracks;
private setConnectedInstanceId;
get remoteStream(): MediaStream;
private mapIceCandidate;
private addPendingRelayCandidates;
private onJsepIceCandidate;
private onJsepDescription;
private findPeerConnection;
private getDefaultPeerConnection;
private getRTCConfig;
private closeNonJoinedPCs;
private startEmittingIceStateChanges;
private createPeerConnection;
private getPeerConnection;
cleanup: () => void;
onIceConnectionStateChanged(state: IceConnectionState): void;
onIceCandidate: (instanceId: string, candidate: RTCIceCandidate) => void;
setLegacyRelayCandidates(candidates: string[]): void;
onJsepMessageReceived: (messages: JsepMessage[]) => void;
getPeerConnectionStats(): Promise<RTCStatsReport | null>;
}