import { RaisedClientIssue, ResolvedClientIssue } from "./ClientMonitorEvents"; import { AudioDesyncIssuePayload } from "./detectors/AudioDesyncDetector"; import { CongestionIssuePayload } from "./detectors/CongestionDetector"; import { CpuPerformanceIssuePayload } from "./detectors/CpuPerformanceDetector"; import { DryInboundTrackIssuePayload } from "./detectors/DryInboundTrackDetector"; import { DryOutboundTrackIssuePayload } from "./detectors/DryOutboundTrackDetector"; import { FreezedVideoTrackIssuePayload } from "./detectors/FreezedVideoTrackDetector"; import { IceConnectionFailedIssuePayload, IceDisconnectedIssuePayload, IceTransportStalledIssuePayload, UnstableIcePathIssuePayload } from "./detectors/IceConnectivityDetector"; import { PlayoutDiscrepancyIssuePayload } from "./detectors/PlayoutDiscrepancyDetector"; import { AudioConcealmentIssuePayload } from "./detectors/AudioConcealmentDetector"; import { JitterBufferStressIssuePayload } from "./detectors/JitterBufferStressDetector"; import { DecoderPerformanceIssuePayload } from "./detectors/DecoderPerformanceDetector"; import { KeyframeStormIssuePayload, VideoRecoveryFailedIssuePayload } from "./detectors/FreezedVideoTrackDetector"; import { CaptureBottleneckIssuePayload, EncoderBottleneckIssuePayload } from "./detectors/SourceEncoderBottleneckDetector"; import { CaptureTrackEndedIssuePayload, SilentAudioSourceIssuePayload } from "./detectors/CaptureFailureDetector"; import { StuckDecoderIssuePayload } from "./detectors/StuckDecoderDetector"; export type ClientMonitorIssue = RaisedClientIssue & { type: 'cpulimitation'; } | RaisedClientIssue & { type: 'congestion'; } | RaisedClientIssue & { type: 'audio-desync'; } | RaisedClientIssue & { type: 'dry-inbound-track'; } | RaisedClientIssue & { type: 'dry-outbound-track'; } | RaisedClientIssue & { type: 'freezed-video-track'; } | RaisedClientIssue & { type: 'inbound-video-playout-discrepancy'; } | RaisedClientIssue & { type: 'unstable-ice-path'; } | RaisedClientIssue & { type: 'ice-disconnected'; } | RaisedClientIssue & { type: 'ice-connection-failed'; } | RaisedClientIssue & { type: 'ice-transport-stalled'; } | RaisedClientIssue & { type: 'audio-concealment'; } | RaisedClientIssue & { type: 'audio-jitter-buffer-stress'; } | RaisedClientIssue & { type: 'video-decoder-overloaded'; } | RaisedClientIssue & { type: 'keyframe-storm'; } | RaisedClientIssue & { type: 'video-recovery-failed'; } | RaisedClientIssue & { type: 'capture-bottleneck'; } | RaisedClientIssue & { type: 'encoder-bottleneck'; } | RaisedClientIssue & { type: 'capture-track-ended'; } | RaisedClientIssue & { type: 'silent-audio-source'; } | RaisedClientIssue & { type: 'stuck-decoder'; }; export type ClientMonitorResolvedIssue = ResolvedClientIssue & { type: 'cpulimitation'; } | ResolvedClientIssue & { type: 'congestion'; } | ResolvedClientIssue & { type: 'audio-desync'; } | ResolvedClientIssue & { type: 'dry-inbound-track'; } | ResolvedClientIssue & { type: 'dry-outbound-track'; } | ResolvedClientIssue & { type: 'freezed-video-track'; } | ResolvedClientIssue & { type: 'inbound-video-playout-discrepancy'; } | ResolvedClientIssue & { type: 'unstable-ice-path'; } | ResolvedClientIssue & { type: 'ice-disconnected'; } | ResolvedClientIssue & { type: 'ice-connection-failed'; } | ResolvedClientIssue & { type: 'ice-transport-stalled'; } | ResolvedClientIssue & { type: 'audio-concealment'; } | ResolvedClientIssue & { type: 'audio-jitter-buffer-stress'; } | ResolvedClientIssue & { type: 'video-decoder-overloaded'; } | ResolvedClientIssue & { type: 'keyframe-storm'; } | ResolvedClientIssue & { type: 'video-recovery-failed'; } | ResolvedClientIssue & { type: 'capture-bottleneck'; } | ResolvedClientIssue & { type: 'encoder-bottleneck'; } | ResolvedClientIssue & { type: 'capture-track-ended'; } | ResolvedClientIssue & { type: 'silent-audio-source'; } | ResolvedClientIssue & { type: 'stuck-decoder'; }; export type ClientMonitorIssueType = ClientMonitorIssue['type']; export declare function isClientMonitorIssue(issue: { type: string; }): issue is ClientMonitorIssue; export declare function isClientMonitorResolvedIssue(issue: { type: string; }): issue is ClientMonitorResolvedIssue;