import { GlossaristModel } from '../models/base.js'; import type { Added as AddedType, Removed as RemovedType, Matched as MatchedType } from './change.js'; import { ConceptDiff, DiffStats } from './concept-diff.js'; import type { Concept } from '../models/concept.js'; interface CollectionDiffData { oldCount?: number; old_count?: number; newCount?: number; new_count?: number; matched?: unknown[]; added?: unknown[]; removed?: unknown[]; conceptDiffs?: Record>; concept_diffs?: Record>; } export declare class ConceptCollectionDiff extends GlossaristModel { oldCount: number; newCount: number; private _matched; private _added; private _removed; private _conceptDiffs; private _statsCache?; private _similarityCache?; constructor(data?: CollectionDiffData); get matched(): MatchedType[]; get added(): AddedType[]; get removed(): RemovedType[]; get conceptDiffs(): Record; get changedIds(): string[]; get hasChanges(): boolean; conceptDiff(id: string): ConceptDiff | null; get stats(): DiffStats; get similarity(): number; walk(): Generator<{ path: string; change: AddedType | RemovedType | unknown; conceptId?: string; language?: string; }>; toJSON(): Record; static fromJSON(data: CollectionDiffData): ConceptCollectionDiff; } interface DiffCollectionsOptions { language?: string; skipUnchanged?: boolean; } export declare function diffConceptCollections(oldCollection: Iterable | Concept[] | null, newCollection: Iterable | Concept[] | null, options?: DiffCollectionsOptions): ConceptCollectionDiff; export {}; //# sourceMappingURL=collection-diff.d.ts.map