import { type PartialDeep } from 'type-fest'; /** * Extract all nested object keys and values that are different between the two given objects. * * @category Object * @category Package : @augment-vir/common * @returns An empty tuple if the values are equal. Otherwise, the first tuple entry contains the * changes in the first value, second entry contains the changes in the second value. * @package [`@augment-vir/common`](https://www.npmjs.com/package/@augment-vir/common) */ export declare function diffObjects>, T1 extends Readonly>>(object0: T0, object1: T1): [PartialDeep, PartialDeep] | []; /** * Extract all entries in the given arrays that are not equal. * * @category Object * @category Package : @augment-vir/common * @returns An empty tuple if the values are equal. Otherwise, the first tuple entry contains the * changes in the first value, second entry contains the changes in the second value. * @package [`@augment-vir/common`](https://www.npmjs.com/package/@augment-vir/common) */ export declare function diffArrays(array0: ReadonlyArray, array1: ReadonlyArray): [Array, Array] | []; /** * Callback for checking equality between two values that can be of different types. * * @category Object * @category Package : @augment-vir/common * @package [`@augment-vir/common`](https://www.npmjs.com/package/@augment-vir/common) */ export type AreEqualCallback = (value0: T0, value1: T1) => boolean; /** * Simple diff check that is useful simply to return the same format as the other diff functions. * * @category Object * @category Package : @augment-vir/common * @returns An empty tuple if the values are equal. Otherwise, the first tuple entry contains the * changes in the first value, second entry contains the changes in the second value. * @package [`@augment-vir/common`](https://www.npmjs.com/package/@augment-vir/common) */ export declare function diffBasic(value0: T0, value1: T1, /** A custom equality checker. Defaults to a strict equality check (`===`). */ areEqual?: AreEqualCallback): [T0, T1] | []; /** * Diff any values. For diffing objects, use `diffObjects` to get better types. * * @category Object * @category Package : @augment-vir/common * @returns An empty tuple if the values are equal. Otherwise, the first tuple entry contains the * changes in the first value, second entry contains the changes in the second value. * @package [`@augment-vir/common`](https://www.npmjs.com/package/@augment-vir/common) */ export declare function diffValues(value0: T0, value1: T1): [T0, T1] | [];