export type DiffKind = 'added' | 'removed' | 'changed'; export type PathSegment = { type: 'key'; key: string; } | { type: 'index'; index: number; }; export interface DiffEntry { path: string; segments: PathSegment[]; kind: DiffKind; before?: unknown; after?: unknown; groupId?: string; } export interface LabelContext { key: string | null; index: number | null; path: string; segments: PathSegment[]; entry: DiffEntry; } export type DiffFormatter = (value: unknown, ctx: LabelContext) => string; export interface DiffViewModel { kind: DiffKind; field: string; path: string; index: number | null; groupId?: string; beforeRaw?: unknown; afterRaw?: unknown; before?: string; after?: string; } export interface DiffOptions { formatter?: DiffFormatter; groupRoots?: string[]; } export declare function diffObjects(before: unknown, after: unknown, groupRoots?: string[]): DiffEntry[]; export declare function buildDiffViewModel(diffs: DiffEntry[], formatValue?: DiffFormatter): DiffViewModel[]; /** * Повертає diff у вигляді масиву обʼєктів (DiffViewModel), */ export declare function getDiff(beforeObj: any, afterObj: any, options?: DiffOptions): DiffViewModel[] | null;