/**
 * VideoDecoder - Decodes encoded video data to VideoFrame
 * Implements the W3C WebCodecs VideoDecoder interface
 */
import { VideoFrame } from './VideoFrame';
import { EncodedVideoChunk } from './EncodedVideoChunk';
import { CodecState, DOMException, BufferSource } from './types';
export interface VideoDecoderConfig {
    codec: string;
    codedWidth?: number;
    codedHeight?: number;
    displayAspectWidth?: number;
    displayAspectHeight?: number;
    colorSpace?: {
        primaries?: string;
        transfer?: string;
        matrix?: string;
        fullRange?: boolean;
    };
    hardwareAcceleration?: 'no-preference' | 'prefer-hardware' | 'prefer-software';
    optimizeForLatency?: boolean;
    description?: BufferSource;
}
export interface VideoDecoderInit {
    output: (frame: VideoFrame) => void;
    error: (error: DOMException) => void;
}
export interface VideoDecoderSupport {
    supported: boolean;
    config: VideoDecoderConfig;
}
export declare class VideoDecoder {
    private _native;
    private _state;
    private _outputCallback;
    private _errorCallback;
    private _decodeQueueSize;
    private _config;
    static isConfigSupported(config: VideoDecoderConfig): Promise<VideoDecoderSupport>;
    constructor(init: VideoDecoderInit);
    get state(): CodecState;
    get decodeQueueSize(): number;
    configure(config: VideoDecoderConfig): void;
    decode(chunk: EncodedVideoChunk): void;
    flush(): Promise<void>;
    reset(): void;
    close(): void;
    private _onFrame;
    private _onError;
}
//# sourceMappingURL=VideoDecoder.d.ts.map