import { Logger } from "../Logger"; import { NetworkQualityStatistics } from "./media/NetworkQualityStatistics"; import { CandidatePair } from "./transport/CandidatePair"; import { TotalMediaStats } from "../../call/stats/TotalMediaStats"; import { CurrentMediaStats } from "../../call/stats/CurrentMediaStats"; import { MediaType } from "../util/MediaType"; import { InfobipGateway } from "../../gateway/InfobipGateway"; export type NetworkQualityStatisticsCallback = (networkQualityStatistics: NetworkQualityStatistics, currentMediaStats: CurrentMediaStats) => void; export declare class PeerConnectionMediaMonitor { callId: string; private name; conferenceId: string; private pc; private mediaType; private logger; private gateway; protected static MONITOR_ICE_STATES: Set; protected static DEFAULT_MONITOR_ICE_CANDIDATE_INTERVAL: number; protected static DEFAULT_MONITOR_SUMMARY_INTERVAL: number; protected static DEFAULT_MONITOR_TRACK_INTERVAL: number; protected readonly iceCandidateInterval: any; protected readonly summaryInterval: any; protected readonly trackMonitoringInterval: any; protected selectedCandidatePair: CandidatePair; protected networkQualityStatisticsListener: NetworkQualityStatisticsCallback; private readonly previousConferenceStats; constructor(callId: string, name: string, conferenceId: string, pc: RTCPeerConnection, mediaType: MediaType, logger: Logger, gateway: InfobipGateway); stop(): TotalMediaStats; onNetworkQualityStatistics(callback: NetworkQualityStatisticsCallback): void; protected isAudio(): boolean; protected isVideo(): boolean; protected sendSelectedCandidatePair(rtcStatsReport: RTCStatsReport): void; protected sendTotalCallStats(): TotalMediaStats; protected sendTrackStats(): void; protected sendIceCandidates(): Promise; protected sendSummaryStats(): void; private sendStatsForTrack; private emitNetworkQualityStats; private getCurrentMediaStats; private sendSummaryStatsForPeerConnection; private sendStatsForLabeledTrack; private sendExtractedMediaStats; private sendExtractedStats; private fillAudioStats; private fillRemoteAudioStats; private fillLocalAudioStats; }