/** * Output formatters — all tool results pass through here. * * Design rule: tool output is consumed by an LLM, never a human directly. * Optimize for token economy and machine parsability: * - No prose filler ("I successfully did X"). * - No labels the LLM can already infer from the call it just made. * - JSON when fields > 1; bare value when result is a single fact. * - Errors: "error: ; fix: " — one line, actionable. * - Cap unbounded lists with a summary header. */ /** Render a value as compact JSON (no whitespace). Drops null/undefined keys. */ export declare function compact(value: unknown): string; /** Standard one-line error format. */ export declare function err(cause: string, fix?: string): string; /** * Frames → SMPTE timecode (HH:MM:SS:FF). Used for EDL emission. * Non-drop frame; agent is responsible for fps choice. */ export declare function framesToTimecode(frames: number, fps: number): string; /** * Truncate a list with a summary header when it exceeds `keep`. Always shows * the first and last `keep/2` items so the LLM sees both endpoints. * * summarizeList([1,2,…,200], 10) → * { head: [1..5], tail: [196..200], total: 200, omitted: 190 } */ export declare function summarizeList(items: T[], keep?: number): { head: T[]; tail: T[]; total: number; omitted: number; }; /** Cap a string at `max` chars with a single-char ellipsis suffix. */ export declare function clip(s: string, max: number): string; //# sourceMappingURL=format.d.ts.map