import { Participant } from "../model/Participant"; import { Track } from "../model/Track"; import { WebSocketMessageBody } from "../websocket-handler/WebsocketHandler"; import { BaseVideoCallHandler } from "./BaseVideoCallHandler"; import { PeerConnection } from "../model/PeerConnection"; export declare class WebrtcHandler extends BaseVideoCallHandler { private dynamicLibHelper; private rtcPeerConnections; private adaptationManager; onParticipantUpdated(): void; onParticipantStartMeetingCalled(participant: Participant): Promise; resumeIncomingTrack(track: Track): void; pauseIncomingTrack(track: Track): void; onSocketMessage(websocketCallHandler: WebSocketMessageBody): void; addTransceiverifRequired: (peerConnection: PeerConnection) => Promise; addTransceiverToEachTrackKind: (eachKind: string, peerConnection: PeerConnection, shouldReplaceIfExist?: boolean) => Promise; private checkIfCanSendOffer; loopSendOffer: (peerConnectionObject: PeerConnection, participant: Participant, mungedOffer: any, count?: number) => Promise; onNewOffer: (data: { sdp: string; type: string; sender: Participant; }) => Promise; onNewAnswer: (data: { sdp: string; type: string; sender: Participant; }) => Promise; onRemoteNegotiationNeeded: (data: { sender: Participant; negotiationId: string; shouldRestartIce: boolean; isVideoAdded: boolean; isAudioAdded: boolean; }) => Promise; onIceCandidate: (data: { candidate: any; type: string; sender: Participant; }) => Promise; onRTCConnectionChanged: (remoteParticipant: Participant, count?: number) => Promise; subToConnectionState: (remoteParticipant: Participant) => Promise; onNegotiationNeeded: (remoteParticipant: Participant, shouldRestartIce?: boolean, count?: number, shouldForceFullyCreateOffer?: boolean) => Promise; onAllParticipants(participants: Participant[]): Promise; onUserLeft(participant: Participant): Promise; onUserJoined(participant: Participant): Promise; startSendTrackToPartiipant: (participant: Participant) => Promise; sendTrackToParticipant: (track: Track, participant: Participant) => Promise; private sendWebrtcMessage; init(isForceFully?: boolean): Promise; onReconnect(): Promise; stopTrack(track: Track): void; pauseTrack(track: Track): void; resumeTrack(track: Track): void; sendTrack(track: Track): void; createDataChannel(): Promise; sendMessageViaDataChannel(messagePayload: any): void; private isOfferInitParticipant; private printLogIfRequired; setOpusSdpParams: (sdp: string) => string; setOpusParams: (transceiver: RTCRtpTransceiver) => void; setOpusParamsForSender: (sender: RTCRtpSender) => void; applyAudioPriority: (transceiver: RTCRtpTransceiver) => void; onPing(): Promise; cleanup(shouldStopTracks?: boolean): Promise; onNewTrack: (track: MediaStreamTrack, receiver: RTCRtpReceiver, transceiver: RTCRtpTransceiver, remoteParticipant: Participant) => Promise; participantAudioVideoStatusUpdated(participant: Participant): void; private registerTrack; private watchForRealTrack; private isPhantomTrack; }