/** Shape of the Rust mutation response fields this helper reads. */ export interface EditSummaryInput { /** Files modified in a multi-file write (Rust `files_modified`). */ files_modified?: number; /** Total replacements across a glob edit (Rust `total_replacements`). */ total_replacements?: number; /** Total files touched by a glob edit (Rust `total_files`). */ total_files?: number; /** Number of match replacements (find/replace, replaceAll). */ replacements?: number; /** Number of edits applied in batch mode (Rust `edits_applied`). */ edits_applied?: number; /** True when a new file was created (append/write create path). */ created?: boolean; /** True when the post-write content is byte-identical to before. */ no_op?: boolean; /** True when the write was reverted (e.g. generated invalid syntax). */ rolled_back?: boolean; /** Whether the file was auto-formatted after the write. */ formatted?: boolean; /** Post-format reflow excerpt from Rust when the formatter changed the applied edit. */ reformatted?: { text?: string; extensive?: boolean; }; /** Diff counts. before/after content is intentionally ignored here. */ diff?: { additions?: number; deletions?: number; }; } /** * Build the compact agent-facing summary line for a successful mutation. * * Returns just the headline sentence; callers append their own conditional * notes (no-op, format-skip, LSP diagnostics, pending/exited servers) which * already exist per-plugin and carry real signal. * * Honesty: when `rolled_back` is true the change did NOT land, so we never say * "applied" — we say the file was left unchanged. This was previously buried * inside a raw `"rolled_back":false` JSON field the agent had to parse. */ export declare function formatEditSummary(data: EditSummaryInput): string; //# sourceMappingURL=edit-summary.d.ts.map