import EventEmitter from 'eventemitter3'; import { ClientMonitor } from "../ClientMonitor"; import { Detectors } from "../detectors/Detectors"; import * as W3C from "../schema/W3cStatsIdentifiers"; import { Logger } from "../utils/logger"; import { InboundRtpMonitor } from "./InboundRtpMonitor"; import { RemoteOutboundRtpMonitor } from "./RemoteOutboundRtpMonitor"; import { OutboundRtpMonitor } from "./OutboundRtpMonitor"; import { RemoteInboundRtpMonitor } from "./RemoteInboundRtpMonitor"; import { MediaSourceMonitor } from "./MediaSourceMonitor"; import { CodecMonitor } from "./CodecMonitor"; import { MediaPlayoutMonitor } from "./MediaPlayoutMonitor"; import { PeerConnectionTransportMonitor } from "./PeerConnectionTransportMonitor"; import { IceTransportMonitor } from "./IceTransportMonitor"; import { IceCandidateMonitor } from "./IceCandidateMonitor"; import { IceCandidatePairMonitor } from "./IceCandidatePairMonitor"; import { CertificateMonitor } from "./CertificateMonitor"; import { DataChannelMonitor } from "./DataChannelMonitor"; import { InboundTrackMonitor } from "./InboundTrackMonitor"; import { OutboundTrackMonitor } from "./OutboundTrackMonitor"; import { CalculatedScore } from "../scores/CalculatedScore"; import { StatsCollector } from "../collectors/StatsCollector"; import { StatsAdapters } from "../adapters/StatsAdapters"; import { PeerConnectionSample, PeerConnectionTransportStats } from "../schema/ClientSample"; export type PeerConnectionMonitorEvents = { 'close': []; 'update': []; 'stats': [W3C.RtcStats[]]; }; export declare class PeerConnectionMonitor extends EventEmitter { readonly peerConnectionId: string; readonly statsCollector: StatsCollector; readonly parent: ClientMonitor; private readonly logger; attachments?: Record | undefined; readonly statsAdapters: StatsAdapters; readonly detectors: Detectors; readonly mappedCodecMonitors: Map; readonly mappedInboundRtpMonitors: Map; readonly mappedRemoteOutboundRtpMonitors: Map; readonly mappedOutboundRtpMonitors: Map; readonly mappedDataChannelMonitors: Map; readonly mappedRemoteInboundRtpMonitors: Map; readonly mappedMediaSourceMonitors: Map; readonly mappedMediaPlayoutMonitors: Map; readonly mappedPeerConnectionTransportMonitors: Map; readonly mappedIceTransportMonitors: Map; readonly mappedIceCandidateMonitors: Map; readonly mappedIceCandidatePairMonitors: Map; readonly mappedCertificateMonitors: Map; private readonly _pendingMediaStreamTracks; readonly mappedInboundTracks: Map; readonly mappedOutboundTracks: Map; closed: boolean; sendingAudioBitrate: number; sendingVideoBitrate: number; receivingAudioBitrate: number; receivingVideoBitrate: number; outboundFractionLost: number; inboundFractionalLost: number; totalInboundPacketsLost: number; totalInboundPacketsReceived: number; totalOutboundPacketsSent: number; totalOutboundPacketsReceived: number; totalOutboundPacketsLost: number; totalDataChannelBytesSent: number; totalDataChannelBytesReceived: number; totalSentAudioBytes: number; totalSentVideoBytes: number; totalReceivedAudioBytes: number; totalReceivedVideoBytes: number; totalAvailableIncomingBitrate: number; totalAvailableOutgoingBitrate: number; deltaInboundPacketsLost: number; deltaInboundPacketsReceived: number; deltaOutboundPacketsSent: number; deltaOutboundPacketsReceived: number; deltaOutboundPacketsLost: number; deltaAudioBytesSent: number; deltaVideoBytesSent: number; deltaAudioBytesReceived: number; deltaVideoBytesReceived: number; deltaDataChannelBytesReceived: number; deltaDataChannelBytesSent: number; highestSeenSendingBitrate?: number; highestSeenReceivingBitrate?: number; highestSeenAvailableOutgoingBitrate?: number; highestSeenAvailableIncomingBitrate?: number; congested: boolean; avgRttInSec?: number; ewmaRttInSec?: number; connectingStartedAt?: number; connectedAt?: number; private _connectionState?; iceState?: W3C.RtcIceTransportState; usingTURN?: boolean; usingTCP?: boolean; calculatedStabilityScore: CalculatedScore; appData?: Record | undefined; constructor(peerConnectionId: string, statsCollector: StatsCollector, parent: ClientMonitor, logger: Logger, attachments?: Record | undefined); get score(): number | undefined; get scoreReasons(): Record | undefined; get receivingBitrate(): number; get sendingBitrate(): number; get tracks(): (InboundTrackMonitor | OutboundTrackMonitor)[]; on(event: K, listener: (...args: PeerConnectionMonitorEvents[K]) => void): this; once(event: K, listener: (...args: PeerConnectionMonitorEvents[K]) => void): this; off(event: K, listener: (...args: PeerConnectionMonitorEvents[K]) => void): this; emit(event: keyof PeerConnectionMonitorEvents, ...args: PeerConnectionMonitorEvents[typeof event]): boolean; collect(): Promise; accept(stats: W3C.RtcStats[]): void; createSample(): PeerConnectionSample; addMediaStreamTrack(track: MediaStreamTrack, attachments?: Record): void; get codecs(): CodecMonitor[]; get inboundRtps(): InboundRtpMonitor[]; get remoteOutboundRtps(): RemoteOutboundRtpMonitor[]; get outboundRtps(): OutboundRtpMonitor[]; get remoteInboundRtps(): RemoteInboundRtpMonitor[]; get mediaSources(): MediaSourceMonitor[]; get mediaPlayouts(): MediaPlayoutMonitor[]; get dataChannels(): DataChannelMonitor[]; get peerConnectionTransports(): PeerConnectionTransportMonitor[]; get iceTransports(): IceTransportMonitor[]; get iceCandidates(): IceCandidateMonitor[]; get iceCandidatePairs(): IceCandidatePairMonitor[]; get certificates(): CertificateMonitor[]; get selectedIceCandidatePairs(): IceCandidatePairMonitor[]; set connectionState(state: W3C.RtcPeerConnectionState | undefined); get connectionState(): W3C.RtcPeerConnectionState | undefined; private _checkVisited; close(): void; private _updateCodec; private _updateInboundRtp; private _updateDataChannel; private _updateRemoteOutboundRtp; private _updateOutboundRtp; private _updateRemoteInboundRtp; private _updateMediaSource; private _updateMediaPlayout; _updatePeerConnectionTransport(input: Partial): PeerConnectionTransportMonitor | undefined | void; private _updateIceTransport; private _updateIceCandidate; private _updateIceCandidatePair; private _updateCertificate; private _createOutboundTrackMonitor; private _createInboundTrackMonitor; }