/** * Minimal copy-on-write draft (immer-like), scoped to plain objects, arrays, * Map and Set. The base is never mutated; untouched subtrees keep reference * identity, and a recipe that changes nothing returns the base itself * (Object.is-equal). * * Map values are draftable; Set elements and class instances are atomic leaf * values — they are replaced wholesale, never drafted. */ export declare function isDraftable(value: unknown): value is object; export declare function produce(base: T, recipe: (draft: T) => void): T;