import { EqualityCheck } from './types'; /** * Creates an equality check that accepts null and undefined values * * @param comparator comparator to be wrapped with the null check */ export declare const createNullableEqualityCheck: (comparator: EqualityCheck) => (value: T | null | undefined) => boolean; /** * Creates an equality check that tests that the values of all the properties in an object * haven't changed. * * The comparison used for the value of the properties is passed to it as an argument. * * @param comparator the equality check to be run for each property */ export declare const createUniformObjectEqualityCheck: (comparator: EqualityCheck]>) => () => (current: T) => boolean; /** * Creates an equality check that tests that the items in an array * haven't changed. * * The comparison used for the individual items is passed to it as an argument. * * @param comparator the equality check to be run for each item */ export declare const createUniformArrayEqualityCheck: (comparator: EqualityCheck) => () => (current: T[]) => boolean; /** * Creates an equality check that tests whether each property of the target object has changed. * Each property is tested with a different comparator, so that they can be of different types. * * The comparator are passed down to it as an object with the same keys as the target object, but * comparators for each property as values. * * @param comparators the object containing the equality checks to be run for each property */ export declare const createObjectWithKeySpecificEqualityCheck: (comparators: { [K in keyof T]: EqualityCheck; }) => () => (current: T) => boolean; /** * Creates an equality check that tests whether the value changed from null to defined or stayed the same * * If the value was not null before and it is not null currently, the comparison is done by the equality check * provided as an argument to this creator. * * This creator is useful to be able to make equality checkers for optional properties when you already have * an equality check for the underlying type. * * @param comparator the equality check to be run in case the value was defined before and now */ export declare const createOptionalValueEqualityCheck: (comparator: EqualityCheck) => () => (current: T | null | undefined) => boolean;