import { GlossaristModel } from '../models/base.js'; import { Added, Removed, Changed } from './change.js'; import type { ChangeJson } from './change.js'; export interface ListDiffJson { added?: ReadonlyArray; removed?: ReadonlyArray; changed?: ReadonlyArray; } interface ListDiffOptions { identityKey?: (item: unknown) => string; textKey?: ((item: unknown) => string | null) | null; } export declare class ListDiff extends GlossaristModel { private readonly _added; private readonly _removed; private readonly _changed; constructor(data?: ListDiffJson); get added(): ReadonlyArray; get removed(): ReadonlyArray; get changed(): ReadonlyArray; get hasChanges(): boolean; get count(): number; entries(): Generator; toJSON(): ListDiffJson; static fromJSON(data: ListDiffJson): ListDiff; } /** * Diff two ordered lists using LCS alignment. */ export declare function diffList(oldList?: ReadonlyArray, newList?: ReadonlyArray, options?: ListDiffOptions): ListDiff; /** * Diff two unordered collections by identity key (set-based). */ export declare function diffSet(oldList?: ReadonlyArray, newList?: ReadonlyArray, options?: ListDiffOptions): ListDiff; export {}; //# sourceMappingURL=list-diff.d.ts.map