import { Tracer } from '../stats';
type MediaKind = 'audio' | 'video';
export type MediaPlaybackWatchdogOptions = {
    element: HTMLMediaElement;
    kind: MediaKind;
    tracer: Tracer;
    isBlocked?: () => boolean;
};
/**
 * Watches a single audio or video element and attempts to recover playback
 * after the element transitions to a paused or suspended state unexpectedly.
 */
export declare class MediaPlaybackWatchdog {
    private logger;
    private readonly kind;
    private readonly isBlocked;
    private element;
    private tracer;
    private controller;
    private pendingTimer;
    private attempt;
    private disposed;
    constructor(opts: MediaPlaybackWatchdogOptions);
    private attach;
    dispose: () => void;
    private onPlaying;
    private onPauseOrSuspend;
    private scheduleRecovery;
    private computeSkipReason;
    private attemptPlay;
}
export {};
