/** * Where the compositor's words go. * * The trailer modules narrate as they work — windows scored, overlays rasterized, the render * summary — and under `--json` every one of those lines must land on stderr, because stdout is * reserved for the single result document (`output.ts`). The modules cannot know which mode the * command runs in, so the command binds the Output seam here first and everything below it * writes through `out`/`warn` without caring. * * Unbound (a test, or a module used as a library) both go to stderr: never stdout, so nothing here * can corrupt a result by accident. */ export interface TrailerLog { info(line: string): void; warn(line: string): void; } /** The command layer calls this once with `createOutput(json)` before running any pipeline step. */ export declare function bindTrailerLog(log: TrailerLog): void; /** Back to stderr — for tests that bound a capturing log. */ export declare function resetTrailerLog(): void; export declare function out(line: string): void; export declare function warn(line: string): void;