export declare type Diff = { path: string[]; from?: JSONValue; to?: JSONValue; }; export declare type JSONValue = string | number | boolean | JSONObject | JSONArray; export interface JSONObject { [key: string]: JSONValue; } export interface JSONArray extends Array { } export declare function applyDiffs(observable: object, diffs: Diff[]): void; export declare function clearDiff(): void; export declare function getDiff(): Diff[]; export declare function startDiffCapture(parent: object, key: string): void; export declare function endDiffCapture(parent: object, key: string, didChange: boolean, path: string[]): void; export declare function recordDiff(from: JSONValue, to: JSONValue, path: string[], didChange?: boolean): void;