/** make shallow copy of an array */ export declare const shallowArrayCopy: (array: readonly T[]) => T[]; /** make shallow copy of an object */ export declare const shallowObjectCopy: (object: T) => T; /** make shallow copy of an array/object */ export declare const shallowCopy: (source: T) => T; /** * apply mutations to the an array without changing the original * @param array original array * @param mutator function applying mutations to the copy of source * @returns changed array copy */ export declare const withArrayCopy: (array: readonly T[], mutator: (copy: T[]) => void) => T[]; /** * apply mutations to the an object without changing the original * @param object original object * @param mutator function applying mutations to the copy of source * @returns changed object copy */ export declare const withObjectCopy: (object: T, mutator: (copy: T) => void) => T; /** * apply mutations to the an object/array without changing the original * @param source original object * @param mutator function applying mutations to the copy of source * @returns changed object copy */ export declare const withCopy: (source: T, mutator: (copy: T) => void) => T;