/** * Pure line-level diff via Longest Common Subsequence (M14 ADR D1 — zero * dependency, keeps the registry copy-pasteable; no `diff`/`@pierre/diffs`). * Suitable for the design-system case (prompts / JSON, < ~500 lines); * O(n·m) time. A row is `eq` (unchanged), `del` (only in old), or `add` * (only in new). Line numbers are honest: `del` has no rightNo, `add` has no * leftNo. Deterministic, total — never throws. */ export type DiffRowKind = "eq" | "del" | "add"; export interface DiffRow { kind: DiffRowKind; text: string; /** 1-based line number in the old text (absent for `add`). */ leftNo?: number; /** 1-based line number in the new text (absent for `del`). */ rightNo?: number; } /** * Diff `oldText` against `newText` at line granularity. Returns the aligned * sequence of rows (eq / del / add) in reading order. `del` before `add` when a * line is replaced. */ export declare function diffLines(oldText: string, newText: string): DiffRow[];