import { Detector } from "./Detector"; import { InboundTrackMonitor, InboundVideoFlowState } from "../monitors/InboundTrackMonitor"; export type VideoFlowIssueState = Exclude; type VideoFlowIssueBase = { peerConnectionId: string; trackId: string; durationInMs?: number; }; export type FrozenVideoFlow = VideoFlowIssueBase & { state: 'frozen'; observedFrozenTimeInMs: number; }; export type ChoppyVideoFlow = VideoFlowIssueBase & { state: 'choppy'; freezeCount: number; windowInMs: number; frozenRatio: number; }; export type VideoFlowIssuePayload = FrozenVideoFlow | ChoppyVideoFlow; export type InboundVideoFlowStateDetectorConfig = { frozenAfterInMs: number; minFreezeCountForChoppy: number; }; export declare class InboundVideoFlowStateDetector implements Detector { readonly trackMonitor: InboundTrackMonitor; static readonly ISSUE_TYPE = "video-flow-disrupted"; readonly name = "inbound-video-flow-state-detector"; disabled: boolean; includeIssueInSample: boolean; inputsUnavailable: boolean; private readonly _issueKey; private _watching; private _judgedCollections; private _state?; private _raisedAt?; constructor(trackMonitor: InboundTrackMonitor); private get config(); private get peerConnection(); private get minFreezeCount(); update(): void; private _raise; private _standDown; private _resolve; } export {};