/** * The run reporter (spec 07 §3.5/§3.6). Pure: turns a `RunReport` into a string; * the caller (`cli.ts`) writes it. No I/O. Imports only types from `./types.js`. * * The `--json` form emits the same `RunReport` data — the machine surface the * `agent-detection-map` consumers (OS-matrix dry-runs) read (REQ-DET-05). */ import { type FileActionKind, type InstallerError, type RunReport } from "./types.js"; /** Options for rendering a run report. */ export interface RenderOpts { /** Emit machine-readable JSON instead of human text (REQ-DET-05, REQ-OBS-01). */ readonly json: boolean; } /** * Render a RunReport to a string (REQ-OBS-01). Pure — no I/O; the caller writes it. * * Human form (default): a header line, then per agent a block, then a final * `Summary: N ok, N failed (exit X)` line. JSON form: `JSON.stringify(report)` * (the same RunReport data) so non-Node consumers can parse it (REQ-DET-05). * * @param report - the assembled run report. * @param opts - { json } selecting the output form. * @returns the rendered string (no trailing newline; the caller adds one). */ export declare function renderReport(report: RunReport, opts: RenderOpts): string; /** Map a FileActionKind to its human verb (REQ-OBS-01 vocabulary). */ export declare function actionVerb(kind: FileActionKind): string; /** * Compose a single actionable line from a structured error (REQ-OBS-02): always prefer * the error's own `message`/`remedy`; supply a per-code default remedy when absent. Pure. * * @param e - the structured error. * @returns " — path: — remedy: " (agent is already in the header). */ export declare function formatError(e: InstallerError): string;