import type { TimeRange, VideoReader as VideoReaderInterfaces } from '../interfaces';
export declare class VideoReader {
    static create(source: Uint8Array | HTMLVideoElement, width: number, height: number, frameRate: number, staticTimeRanges: TimeRange[]): Promise<VideoReaderInterfaces>;
    isSought: boolean;
    isPlaying: boolean;
    bitmap: ImageBitmap | null;
    private videoEl;
    private frameRate;
    private canplay;
    private staticTimeRanges;
    private disablePlaybackRate;
    private error;
    private player;
    private width;
    private height;
    private bitmapCanvas;
    private bitmapCtx;
    constructor(source: Uint8Array | HTMLVideoElement, width: number, height: number, frameRate: number, staticTimeRanges: TimeRange[], isWorker?: boolean);
    prepare(targetFrame: number, playbackRate: number): Promise<void>;
    getVideo(): HTMLVideoElement;
    generateBitmap(): Promise<ImageBitmap>;
    play(): Promise<void>;
    pause(): void;
    stop(): void;
    getError(): any;
    onDestroy(): void;
    private seek;
    private setError;
    private linkPlayer;
}
export declare class StaticTimeRanges {
    private timeRanges;
    constructor(timeRanges: TimeRange[]);
    contains(targetFrame: number): boolean;
}
