import type { DeepWritable, Writable } from '../../types/utils.js'; /** * Fast and simple copy for flat object like `{ name: 'hello' }`, `[0, 1, 2]` or any other primitives. * * **WARNING:** Avoid using if contain nested object. */ export declare function shallowCopy(object: T): T; export declare function shallowCopy(object: T, omitReadonly: true): Writable; export declare function shallowCopy(object: T, omitReadonly: boolean): T; /** * Recursive copy, used for nested object. * * Works best with only primitive object. Use `structuredClone()` for more complicated objects, or `clone()` or similar object method if available. */ export declare function deepCopy(object: T): T; export declare function deepCopy(object: T, omitReadonly: true): DeepWritable; export declare function deepCopy(object: T, omitReadonly: boolean): T; /** * Simple old-fashioned deep copy JSON object or JSON array. * * Works best with only primitive object. Use `structuredClone()` for more complicated objects, or `clone()` or similar object method if available. * * **WARNING:** Memory intensive operation especially for very large object. */ export declare function jsonCopy(object: T): T; export declare function jsonCopy(object: T, omitReadonly: true): DeepWritable; export declare function jsonCopy(object: T, omitReadonly: boolean): T; /** Check if an object has key/value pairs */ export declare function isRecord>(data: unknown): data is T; /** Check if object is empty. */ export declare function isEmpty(obj: Record): boolean; //# sourceMappingURL=json.d.ts.map