import { Link } from "../proxy/createProxy"; import { UnFreeze } from "../helpers/freeze"; import { Actions } from "../internals/walkParents"; export declare type Patch = { v?: unknown; p?: Link; op: Actions | JSONPatch["op"]; next?: Patch[]; path?: unknown[] | string; value?: unknown; }; export declare type JSONPatch = { op: "add" | "replace" | "remove"; path: unknown[] | string; value?: unknown; }; export declare type PatchStore = { patches: Patch[]; inversePatches: Patch[]; }; export declare type PatchPair = { patch: Patch; inverse: Patch; }; export declare function applyPatches(state: T, patches: Patch[] | JSONPatch[], cloneFn?: (obj: unknown) => object): UnFreeze; export declare function applyPatchesMutatively(state: T, patches: Patch[] | JSONPatch[]): UnFreeze; export declare function applyPatch(current: T, patch: Patch | JSONPatch, clones: WeakMap, traversedPatches: WeakSet, cloneFn?: (obj: unknown) => object): unknown; export declare function convertPatchesToStandard(patches: Patch[], pathArray?: boolean, path?: unknown[], // don't pass manually as argument converted?: JSONPatch[], // don't pass manually as argument traversedPatches?: WeakSet | null): JSONPatch[];