import { GlossaristModel } from '../models/base.js'; import { TextDiff } from './text-diff.js'; import type { TextDiffJson } from './text-diff.js'; export declare const CHANGE_ADDED = "added"; export declare const CHANGE_REMOVED = "removed"; export declare const CHANGE_CHANGED = "changed"; export declare const CHANGE_MATCHED = "matched"; export type ChangeType = 'added' | 'removed' | 'changed' | 'matched'; export interface ChangeJson { type: ChangeType; path?: string | null; value?: unknown; old_value?: unknown; oldValue?: unknown; new_value?: unknown; newValue?: unknown; text_diff?: TextDiffJson; textDiff?: TextDiffJson; } export declare class Change extends GlossaristModel { readonly path: string | null; constructor(data?: Pick); get type(): ChangeType; static fromJSON(data: ChangeJson): Change; } export declare class Added extends Change { readonly value: unknown; constructor(data?: Pick); get type(): ChangeType; toJSON(): ChangeJson; static fromJSON(data: ChangeJson): Added; } export declare class Removed extends Change { readonly value: unknown; constructor(data?: Pick); get type(): ChangeType; toJSON(): ChangeJson; static fromJSON(data: ChangeJson): Removed; } export interface ChangedConstructorData { path?: string | null; oldValue?: unknown; old_value?: unknown; newValue?: unknown; new_value?: unknown; textDiff?: TextDiff | TextDiffJson; text_diff?: TextDiffJson; } export declare class Changed extends Change { readonly oldValue: unknown; readonly newValue: unknown; private readonly _textDiff; constructor(data?: ChangedConstructorData); get type(): ChangeType; get textDiff(): TextDiff | null; toJSON(): ChangeJson; static fromJSON(data: ChangeJson): Changed; } export declare class Matched extends Change { readonly value: unknown; constructor(data?: Pick); get type(): ChangeType; toJSON(): ChangeJson; static fromJSON(data: ChangeJson): Matched; } export declare function deserializeChange(data: ChangeJson): Change; //# sourceMappingURL=change.d.ts.map