import type { AnimojiReceiver, AnimojiSender } from '@vkontakte/calls-vmoji'; import BaseSignaling from '../../abstract/BaseSignaling'; import { ParticipantId } from '../../types/Participant'; import ServerSettings from '../../types/ServerSettings'; import { MediaSource } from '../MediaSource'; import BaseTransport from './BaseTransport'; export default class DirectTransport extends BaseTransport { private readonly _participantId; private readonly _isMaster; private _remoteSDP; private _remoteCandidates; private _lastRemoteSDP; private _animojiDataChannel; private _animojiReceiver; private _animojiSender; private _remoteAnimojiVersion; private _isOpen; private _remotePeerId; private _statInterval; private _settingsInterval; private _failedOnCreate; private _remoteStream; private _iceRestartTimeout; private _reconnectionTimeout; private _reconnectionPrevented; private _lastStat; private _fingerprint; private _neverConnected; private _serverSettings; private _prevConsumerSettings; private _networkLimitsForVideo; private _videoMaxDimensionsForNet; private _lastVideoMaxDimension; private _lastBadConnection; private _perfStatReporter; private _directStatReporter; constructor(participantId: ParticipantId, isMaster: boolean, signaling: BaseSignaling, mediaSource: MediaSource, serverSettings: ServerSettings); get participantId(): ParticipantId; updateStatisticsInterval(): void; private _isDeadConnection; open(peerId?: string | null): Promise; updateSettings(settings: ServerSettings): void; preventRestart(): void; allowRestart(): void; setAnimojiTransport(receiver: AnimojiReceiver, sender: AnimojiSender): void; close(error?: Error): void; private _setState; private _onSignalingNotification; private _handleTransmittedData; private _addIceCandidate; private _setRemoteCandidates; private _setRemoteDescription; private _processAnimojiProtocolVersion; private _onAddTrack; private _handleIceCandidate; private _onSignalingStateChange; private _onIceConnectionStateChange; private _markConnected; private _onConnectionStateChange; private _startReconnection; private _requestTopologySwitch; private _stopReconnection; private _startIceRestart; private _createOffer; private _createAnswer; private static _patchLocalDescription; private static _patchRemoteDescription; private _onReplacedTrack; private _startStatInterval; /** * Check SVC support * @see https://webrtc.internaut.com/mc/ */ private _isSVCSupported; private _checkPPTNetwork; private _stopStatInterval; private _onNetworkStatus; private _startSettingsInterval; private _stopSettingsInterval; private _calcFingerprint; private _applySettings; private _createDataChannel; }