export declare type Edit = Insert | Update | Delete; export interface Insert { brand: T; type: 'insert'; path: string; value: any; } export interface Update { brand: T; type: 'update'; path: string; value: any; } export interface Delete { brand: T; type: 'delete'; path: string; } export declare namespace ValueDelta { function Diff(current: T, next: T): Edit[]; function Patch(current: T, edits: Edit[]): T; }