import { ArrayBufferImage } from './array-buffer-image';
export interface FrameData {
    id: number;
    data: ArrayBuffer;
    width: number;
    height: number;
}
export interface TimeRange {
    start: number;
    end: number;
}
export declare class VideoReader {
    static create(mp4Data: Uint8Array, width: number, height: number, frameRate: number, staticTimeRanges: TimeRange[]): Promise<VideoReader>;
    isSought: boolean;
    isPlaying: boolean;
    private readonly frameRate;
    private currentFrame;
    private mp4Path;
    private videoDecoder;
    private videoDecoderPromise;
    private frameDataBuffers;
    private bufferIndex;
    private getFrameDataLooping;
    private getFrameDataResolve;
    private getFrameDataLoopTimer;
    private seeking;
    private arrayBufferImage;
    constructor(mp4Data: Uint8Array, width: number, height: number, frameRate: number, staticTimeRanges: TimeRange[]);
    prepare(targetFrame: number): Promise<void>;
    getVideo(): ArrayBufferImage;
    play(): Promise<void>;
    pause(): void;
    stop(): void;
    getError(): any;
    onDestroy(): void;
    private getFrameData;
    private startGetFrameDataLoop;
    private getFrameDataLoop;
    private clearFrameDataLoop;
}
