import { Logger } from "./utils/logger"; import type { InventedSpeechDetectorConfig } from "./detectors/InventedSpeechDetector"; import type { AVDesyncPlayoutDetectorConfig } from "./detectors/AVDesyncPlayoutDetector"; import type { BlockedStunRequestsDetectorConfig } from "./detectors/BlockedStunRequestsDetector"; import type { BlockedOutboundMediaDetectorConfig } from "./detectors/BlockedOutboundMediaDetector"; import type { BlockedInboundMediaDetectorConfig } from "./detectors/BlockedInboundMediaDetector"; import type { CaptureSourceLostDetectorConfig } from "./detectors/CaptureSourceLostDetector"; import type { CaptureTrackMutedDetectorConfig } from "./detectors/CaptureTrackMutedDetector"; import type { CodecChangeDetectorConfig } from "./detectors/CodecChangeDetector"; import type { CongestionDetectorConfig } from "./detectors/CongestionDetector"; import type { UplinkCongestionDetectorConfig } from "./detectors/UplinkCongestionDetector"; import type { DownlinkCongestionDetectorConfig } from "./detectors/DownlinkCongestionDetector"; import type { CpuPerformanceDetectorConfig } from "./detectors/CpuPerformanceDetector"; import type { DecoderPerformanceDetectorConfig } from "./detectors/DecoderPerformanceDetector"; import type { DryInboundTrackDetectorConfig } from "./detectors/DryInboundTrackDetector"; import type { DryOutboundTrackDetectorConfig } from "./detectors/DryOutboundTrackDetector"; import type { DtlsHandshakeFailedDetectorConfig } from "./detectors/DtlsHandshakeFailedDetector"; import type { DtlsHandshakeStalledDetectorConfig } from "./detectors/DtlsHandshakeStalledDetector"; import type { EncoderBottleneckDetectorConfig } from "./detectors/EncoderBottleneckDetector"; import type { FrameAssemblyStalledDetectorConfig } from "./detectors/FrameAssemblyStalledDetector"; import type { InboundVideoFlowStateDetectorConfig } from "./detectors/InboundVideoFlowStateDetector"; import type { IceConnectionFailedDetectorConfig } from "./detectors/IceConnectionFailedDetector"; import type { IceDisconnectedDetectorConfig } from "./detectors/IceDisconnectedDetector"; import type { IceEstablishmentFailedDetectorConfig } from "./detectors/IceEstablishmentFailedDetector"; import type { IcePathEstablishmentDetectorConfig } from "./detectors/IcePathEstablishmentDetector"; import type { IceReachabilityDetectorConfig } from "./detectors/IceReachabilityDetector"; import type { IceRestartDetectorConfig } from "./detectors/IceRestartDetector"; import type { IceRestartRecommendationDetectorConfig } from "./detectors/IceRestartRecommendationDetector"; import type { IceTransportStalledDetectorConfig } from "./detectors/IceTransportStalledDetector"; import type { IceTraversalDetectorConfig } from "./detectors/IceTraversalDetector"; import type { DecoderBottleneckDetectorConfig } from "./detectors/DecoderBottleneckDetector"; import type { JitterBufferStressDetectorConfig } from "./detectors/JitterBufferStressDetector"; import type { VideoCaptureBottleneckDetectorConfig } from "./detectors/VideoCaptureBottleneckDetector"; import type { PixelatedVideoDetectorConfig } from "./detectors/PixelatedVideoDetector"; import type { PlayoutDiscrepancyDetectorConfig } from "./detectors/PlayoutDiscrepancyDetector"; import type { RtpSenderStalledDetectorConfig } from "./detectors/RtpSenderStalledDetector"; import type { SilentAudioSourceDetectorConfig } from "./detectors/SilentAudioSourceDetector"; import type { SimulcastLayerDetectorConfig } from "./detectors/SimulcastLayerDetector"; import type { StatsGapDetectorConfig } from "./detectors/StatsGapDetector"; import type { StuckDecoderDetectorConfig } from "./detectors/StuckDecoderDetector"; import type { AudioPlayoutSynthesisDetectorConfig } from "./detectors/AudioPlayoutSynthesisDetector"; import type { TransportDelayDetectorConfig } from "./detectors/TransportDelayDetector"; import type { TransportDemuxStalledDetectorConfig } from "./detectors/TransportDemuxStalledDetector"; import type { TransportLossDetectorConfig } from "./detectors/TransportLossDetector"; import type { UnstableIcePathDetectorConfig } from "./detectors/UnstableIcePathDetector"; import type { VideoRecoveryFailedDetectorConfig } from "./detectors/VideoRecoveryFailedDetector"; import type { VideoResolutionChangeDetectorConfig } from "./detectors/VideoResolutionChangeDetector"; import type { OutboundTrackWindowConfig } from "./monitors/OutboundTrackMonitor"; import type { InboundTrackWindowConfig } from "./monitors/InboundTrackMonitor"; import type { PeerConnectionWindowConfig } from "./monitors/PeerConnectionMonitor"; import type { ClientWindowConfig } from "./ClientMonitor"; export type AppliedClientMonitorConfig = Record> = { clientId?: string; callId?: string; bufferingEventsForSamples?: boolean; bufferClientSamplesUntilSubscriber?: boolean; collectingPeriodInMs: number; samplingPeriodInMs?: number; integrateNavigatorMediaDevices: boolean | MediaDevices; watchTabVisibility: boolean; addClientJointEventOnCreated?: boolean; addClientLeftEventOnClose?: boolean; outboundTrackWindow: OutboundTrackWindowConfig; inboundTrackWindow: InboundTrackWindowConfig; peerConnectionWindow: PeerConnectionWindowConfig; clientWindow: ClientWindowConfig; iceReachabilityDetector: IceReachabilityDetectorConfig | null; iceTraversalDetector: IceTraversalDetectorConfig | null; icePathEstablishmentDetector: IcePathEstablishmentDetectorConfig | null; iceEstablishmentFailedDetector: IceEstablishmentFailedDetectorConfig | null; dtlsHandshakeFailedDetector: DtlsHandshakeFailedDetectorConfig | null; dtlsHandshakeStalledDetector: DtlsHandshakeStalledDetectorConfig | null; iceDisconnectedDetector: IceDisconnectedDetectorConfig | null; iceConnectionFailedDetector: IceConnectionFailedDetectorConfig | null; iceTransportStalledDetector: IceTransportStalledDetectorConfig | null; unstableIcePathDetector: UnstableIcePathDetectorConfig | null; iceRestartDetector: IceRestartDetectorConfig | null; iceRestartRecommendationDetector: IceRestartRecommendationDetectorConfig | null; congestionDetector: CongestionDetectorConfig | null; uplinkCongestionDetector: UplinkCongestionDetectorConfig | null; downlinkCongestionDetector: DownlinkCongestionDetectorConfig | null; transportDelayDetector: TransportDelayDetectorConfig | null; transportLossDetector: TransportLossDetectorConfig | null; blockedStunRequestsDetector: BlockedStunRequestsDetectorConfig | null; blockedOutboundMediaDetector: BlockedOutboundMediaDetectorConfig | null; blockedInboundMediaDetector: BlockedInboundMediaDetectorConfig | null; captureSourceLostDetector: CaptureSourceLostDetectorConfig | null; silentAudioSourceDetector: SilentAudioSourceDetectorConfig | null; videoCaptureBottleneckDetector: VideoCaptureBottleneckDetectorConfig | null; encoderBottleneckDetector: EncoderBottleneckDetectorConfig | null; rtpSenderStalledDetector: RtpSenderStalledDetectorConfig | null; dryOutboundTrackDetector: DryOutboundTrackDetectorConfig | null; transportDemuxStalledDetector: TransportDemuxStalledDetectorConfig | null; dryInboundTrackDetector: DryInboundTrackDetectorConfig | null; frameAssemblyStalledDetector: FrameAssemblyStalledDetectorConfig | null; decoderBottleneckDetector: DecoderBottleneckDetectorConfig | null; decoderPerformanceDetector: DecoderPerformanceDetectorConfig | null; stuckDecoderDetector: StuckDecoderDetectorConfig | null; playoutDiscrepancyDetector: PlayoutDiscrepancyDetectorConfig | null; videoRecoveryFailedDetector: VideoRecoveryFailedDetectorConfig | null; cpuPerformanceDetector: CpuPerformanceDetectorConfig | null; pixelatedVideoDetector: PixelatedVideoDetectorConfig | null; inboundVideoFlowStateDetector: InboundVideoFlowStateDetectorConfig | null; inventedSpeechDetector: InventedSpeechDetectorConfig | null; audioPlayoutSynthesisDetector: AudioPlayoutSynthesisDetectorConfig | null; avDesyncPlayoutDetector: AVDesyncPlayoutDetectorConfig | null; jitterBufferStressDetector: JitterBufferStressDetectorConfig | null; captureTrackMutedDetector: CaptureTrackMutedDetectorConfig | null; codecChangeDetector: CodecChangeDetectorConfig | null; videoResolutionChangeDetector: VideoResolutionChangeDetectorConfig | null; simulcastLayerDetector: SimulcastLayerDetectorConfig | null; statsGapDetector: StatsGapDetectorConfig | null; sendResolvedIssuesToServer?: boolean; sendScoreReasonsToServer?: boolean; sendIceTransportMetadataOnChangeOnly?: boolean; appData: AppData; }; export type ClientMonitorConfig = Record> = Partial> & { logger?: Logger; }; export type ClientMonitorSourceType = 'mediasoup-device' | 'RTCPeerConnection' | 'mediasoup-transport';