import { PickObject } from "./types"; declare type ObjectLike = { [key: string]: unknown; }; /** get diff */ export declare function diff(source: T, other: D): PickObject; /** From source, pick whose keys are existed in props' keys */ export declare function pickDiffPatch(source: T, props: D): PickObject; /** create diff patch */ export declare function createDiffPatch(source: T, other: D): PickObject>; /** * Get diff patch between source and snapshot. * * @example * * const source = { a: 1, b: 2 }; * const snapshot = new Snapshot(source); * source.a = 3; * snapshot.getDiffPatch(); * // => { a: 3 } */ export declare class Snapshot { private _source; readonly snapshots: T[]; private _index; constructor(source: T); /** push new snaphsot */ takeSnapshot(): this; /** get diff patch between latest source and snapshot */ getDiffPatch(source?: T, other?: T): PickObject>; } export {};