import type { LogLevel } from '../log-level';
import type { CompositorCommand } from './payloads';
export type Compositor = {
    finishCommands: () => Promise<void>;
    executeCommand: <T extends keyof CompositorCommand>(type: T, payload: CompositorCommand[T]) => Promise<Uint8Array>;
    waitForDone: () => Promise<void>;
    pid: number | null;
};
export declare const startLongRunningCompositor: ({ maximumFrameCacheItemsInBytes, logLevel, indent, binariesDirectory, extraThreads, }: {
    maximumFrameCacheItemsInBytes: number | null;
    logLevel: LogLevel;
    indent: boolean;
    binariesDirectory: string | null;
    extraThreads: number;
}) => Compositor;
export declare const startCompositor: <T extends keyof CompositorCommand>({ type, payload, logLevel, indent, binariesDirectory, }: {
    type: T;
    payload: CompositorCommand[T];
    logLevel: LogLevel;
    indent: boolean;
    binariesDirectory: string | null;
}) => Compositor;
