export interface JSONPatchCustomType { apply?: ApplyHandler; rebase?: RebaseHandler; invert?: InvertHandler; } export interface JSONPatchCustomTypes { [key: string]: JSONPatchCustomType; } export interface ApplyJSONPatchOptions { partial?: boolean; strict?: boolean; error?: JSONPatchOp; atPath?: string; } export interface JSONPatchOp { op: string; path: string; from?: string; value?: any; } export interface Root { '': any; } export declare type ApplyHandler = (path: string, value: any, from: string) => string | void; export declare type RebaseHandler = (over: JSONPatchOp, ops: JSONPatchOp[]) => JSONPatchOp[]; export declare type InvertHandler = (op: JSONPatchOp, value: any, changedObj: any, isIndex: boolean) => JSONPatchOp;