import type { ScrcpyMediaStreamPacket } from "@yume-chan/scrcpy";
import { WritableStream } from "@yume-chan/stream-extra";
import type { ScrcpyVideoDecoder, ScrcpyVideoDecoderCapability } from "./types.js";
export declare function createCanvas(): OffscreenCanvas | HTMLCanvasElement;
export declare class TinyH264Decoder implements ScrcpyVideoDecoder {
    #private;
    static readonly capabilities: Record<string, ScrcpyVideoDecoderCapability>;
    get renderer(): OffscreenCanvas | HTMLCanvasElement;
    get sizeChanged(): import("@yume-chan/event").Event<{
        width: number;
        height: number;
    }, unknown>;
    get width(): number;
    get height(): number;
    get framesRendered(): number;
    get framesSkipped(): number;
    get writable(): WritableStream<ScrcpyMediaStreamPacket>;
    constructor({ canvas }?: TinyH264Decoder.Options);
    dispose(): void;
}
export declare namespace TinyH264Decoder {
    interface Options {
        /**
         * Optional render target canvas element or offscreen canvas.
         * If not provided, a new `<canvas>` (when DOM is available)
         * or a `OffscreenCanvas` will be created.
         */
        canvas?: HTMLCanvasElement | OffscreenCanvas | undefined;
    }
}
//# sourceMappingURL=decoder.d.ts.map