export declare type ChangeStatus = 'modified' | 'added' | 'removed'; export declare type DiffStatus = ChangeStatus | 'unchanged'; export interface PathDiff { [path: string]: DiffStatus; } export interface PathChanges { [path: string]: ChangeStatus; } /** * Describes a change of an object. * * A null value below means nonexistend object at this path. * * - newValue: null means delete object, if it exists. * - oldValue: null means the object previously did not exist. * - Undefined (unspecified) oldValue means no consistency check. */ export declare type Change> = { newValue: T | null; oldValue?: T | null; }; export declare type Changeset> = { [path: string]: C; }; /** * The result of applying a changeset. * * `conflicts` shows how paths don’t match reference data (`oldValue`s) * provided by the changeset. Ideally conflicts would be an empty object, * * Paths in conflicts can be object or buffer paths, * depending on use case. */ export interface CommitOutcome { newCommitHash?: string; conflicts?: PathChanges; }