import { Detector } from "./Detector"; import type { OutboundTrackMonitor } from "../monitors/OutboundTrackMonitor"; export type EncoderBottleneckIssuePayload = { peerConnectionId: string; trackId: string; producedFpsForDetection: number; producedFramesForDetection: number; encodedFpsForDetection: number; encodedFramesForDetection: number; detectionWindowInMs: number; encodeDegradation: number; qualityLimitationReason?: string; encoderImplementation?: string; powerEfficientEncoder?: boolean; recoveryWindowInMs?: number; producedFpsForRecovery?: number; producedFramesForRecovery?: number; encodedFpsForRecovery?: number; encodedFramesForRecovery?: number; }; export type EncoderBottleneckIssueType = 'encoder-bottleneck'; export type EncoderBottleneckDetectorConfig = { encodeDegradationThreshold: number; }; export declare class EncoderBottleneckDetector implements Detector { readonly trackMonitor: OutboundTrackMonitor; static readonly ISSUE_TYPE: EncoderBottleneckIssueType; readonly name = "encoder-bottleneck-detector"; disabled: boolean; includeIssueInSample: boolean; private readonly _issueKey; private _raised; constructor(trackMonitor: OutboundTrackMonitor); private get config(); private get peerConnection(); update(): boolean | void; private _raiseIssue; private _clear; }