/** * Progress reporting — emits __progress__ JSON lines that ab-agent's * executor parses (see apps/ab-agent/src/skills/executor.ts). * * Always writes to stdout because the consumer reads stdout line-by-line. * Each event is a single JSON object on its own line, with the marker * field `__progress__: true` so non-progress stdout content is ignored. * * The consumer flattens the entire parsed JSON into `extra`, so any * additional context (model id, generationId, ...) can be passed as * top-level keys and will reach the SSE client unchanged. */ export interface ProgressEvent { /** Pipeline phase, e.g. `gen-image:request`. */ phase?: string; /** 0..1 progress fraction. */ progress?: number; etaSeconds?: number | null; elapsedSeconds?: number | null; /** Free-form context — flattened into the parsed JSON line. */ [key: string]: unknown; } export declare function emitProgress(ev: ProgressEvent): void;