/** * @license * Copyright 2023 Nuraly, Laabidi Aymen * SPDX-License-Identifier: MIT */ export type Canonicalize = 'json' | 'none' | ((src: string) => string); export type DiffRow = { kind: 'equal'; oldLine: number; newLine: number; text: string; } | { kind: 'del'; oldLine: number; text: string; } | { kind: 'add'; newLine: number; text: string; }; /** Key-sort a JSON string so reordered-but-equivalent objects diff as identical. */ export declare function canonicalizeJson(src: string): string; export declare function applyCanonicalize(src: string, mode?: Canonicalize): string; /** * Line-level diff via longest-common-subsequence. Adequate for chat artifacts * (config JSON, small documents); not tuned for multi-megabyte inputs. */ export declare function diffLines(before: string, after: string): DiffRow[]; /** True when, after canonicalization, the two sides actually differ. */ export declare function hasRealDiff(before: string, after: string, mode?: Canonicalize): boolean; //# sourceMappingURL=artifact-diff.d.ts.map