import { defaultDbPath } from "./store.js";
import { type RunRenderPipelineLike, type WorkerProgressEvent } from "./worker.js";
import type { RenderJob, RenderJobOptions } from "./job.js";
export type { RenderJob, RenderJobOptions, WorkerProgressEvent };
export { defaultDbPath };
export interface RenderQueueOptions {
    /** D2 — defaults to defaultDbPath(). Use ":memory:" for tests. */
    dbPath?: string;
    runRenderPipeline: RunRenderPipelineLike;
    loadComposition: (workId: string) => Promise<any>;
    outDirFor: (workId: string) => string;
    concurrency?: number;
}
export declare class RenderQueue {
    private readonly db;
    private readonly store;
    private readonly worker;
    private readonly extras;
    constructor(opts: RenderQueueOptions);
    enqueue(opts: RenderJobOptions): RenderJob;
    cancel(jobId: string): void;
    get(jobId: string): RenderJob | null;
    list(workId: string): RenderJob[];
    on(jobId: string, fn: (ev: WorkerProgressEvent) => void): () => void;
    /** Test helper / shutdown — stop the worker drain loop and close db. */
    shutdown(): void;
}
//# sourceMappingURL=index.d.ts.map