import { type JsonCompatibleValue } from '@augment-vir/core'; import { type IsUnknown, type Jsonify, type Writable } from 'type-fest'; /** * Deeply copy an object through JSON. This is the fastest deep copy, but the input must already be * JSON serializable otherwise the copy will not match the original. * * @category JSON : Common * @category Copy * @category Package : @augment-vir/common * @example * * ```ts * import {copyThroughJson} from '@augment-vir/common'; * * // `copy1` will be `{a: 'a', b: 'b'}` * const copy1 = copyThroughJson({a: 'a', b: 'b'}); * // `copy2` will be `{map: {}, b: 'b'}` * const copy2 = copyThroughJson({ * map: new Map([ * [ * 'q', * 'r', * ], * [ * 's', * 't', * ], * ]), * b: 'b', * }); * ``` * * @package [`@augment-vir/common`](https://www.npmjs.com/package/@augment-vir/common) */ export declare function copyThroughJson(input: T): IsUnknown extends true ? JsonCompatibleValue : Writable>; /** * Same as {@link copyThroughJson} but this uses safe serialization from {@link safeJsonStringify}. * * @category JSON : Common * @category Copy * @category Package : @augment-vir/common * @package [`@augment-vir/common`](https://www.npmjs.com/package/@augment-vir/common) */ export declare function safeCopyThroughJson(input: T): IsUnknown extends true ? JsonCompatibleValue : Writable>;