import { Detector } from "./Detector"; import type { InboundTrackMonitor } from "../monitors/InboundTrackMonitor"; export type DecoderBottleneckIssuePayload = { peerConnectionId: string; trackId: string; receivedFpsForDetection: number; receivedFramesForDetection: number; decodedFpsForDetection: number; decodedFramesForDetection: number; detectionWindowInMs: number; decodeDegradation: number; droppedFramesForDetection: number; arrivedFramesForDetection: number; arrivedFpsForDetection: number; frameWidth?: number; frameHeight?: number; recoveryWindowInMs?: number; receivedFpsForRecovery?: number; receivedFramesForRecovery?: number; decodedFpsForRecovery?: number; decodedFramesForRecovery?: number; }; export type DecoderBottleneckDetectorConfig = { decodeDegradationThreshold: number; minReceivedFps: number; }; export declare class DecoderBottleneckDetector implements Detector { readonly trackMonitor: InboundTrackMonitor; static readonly ISSUE_TYPE = "decoder-bottleneck"; readonly name = "decoder-bottleneck-detector"; disabled: boolean; includeIssueInSample: boolean; private readonly _issueKey; private _raised; private _previousCollectionArrived?; constructor(trackMonitor: InboundTrackMonitor); private get config(); private get peerConnection(); update(): void; private _raiseIssue; private _clear; }