import { type ExactVideoQuality, ILogger, IObservable, Subject } from '@vkontakte/videoplayer-shared';
import { ITuningConfig } from '../../../utils/tuningConfig';
import { IVideoTrack } from '../../../player/types';
import { IStateMachine } from '../../../utils/StateMachine/types';
interface IConnectData {
    logger: ILogger;
    video: HTMLVideoElement;
    tracks: IVideoTrack[];
    droppedFramesChecker: ITuningConfig['droppedFramesChecker'];
    isAuto: IStateMachine<boolean>;
    playing$: IObservable<undefined>;
    pause$: IObservable<undefined>;
}
declare class DroppedFramesManager {
    onDroopedVideoFramesLimit$: Subject<void>;
    private subscription;
    private log;
    private video;
    private droppedFramesChecker;
    private isAuto;
    private playing;
    private tracks;
    private forceChecker$;
    private isForceCheckCounter;
    private prevTotalVideoFrames;
    private prevDroppedVideoFrames;
    private currentTimer;
    private limitCounts;
    private currentQuality;
    private maxQualityLimit;
    connect(data: IConnectData): void;
    destroy(): void;
    get droppedVideoMaxQualityLimit(): ExactVideoQuality | undefined;
    private subscribe;
    private handleChangeVideoQuality;
    private onChangeQuality;
    private checkDroppedFrames;
    private onDroopedVideoFramesLimitTrigger;
    private getMaxQualityLimit;
    private get isEnabled();
    private get isDroppedFramesCheckerSupport();
    private savePrevFrameCounts;
}
export default DroppedFramesManager;
