import { Thread } from "@e280/comrade";
import { Machina } from "./parts/machina.js";
import { DecoderInput, DriverSchematic, Composition, EncoderInput, DecoderSource } from "./fns/schematic.js";
export type DriverOptions = {
    workerUrl: URL | string;
};
export declare class Driver {
    #private;
    machina: Machina;
    thread: Thread<DriverSchematic>;
    static setup(options: DriverOptions): Promise<Driver>;
    constructor(machina: Machina, thread: Thread<DriverSchematic>);
    hello(): Promise<void>;
    getAudioDuration(source: DecoderSource): Promise<any>;
    getVideoDuration(source: DecoderSource): Promise<any>;
    decode(input: DecoderInput): {
        audio: ReadableStream<AudioData>;
        video: ReadableStream<VideoFrame>;
    };
    encode({ readables, config }: EncoderInput): Promise<void>;
    composite(composition: Composition): Promise<VideoFrame>;
}
