export type EqualityComparer = (a: T, b: T) => boolean; /** * Compares two items for equality using strict equality. */ export declare const strictEquals: EqualityComparer; /** * Checks if the items of two arrays are equal. * By default, strict equality is used to compare elements, but a custom equality comparer can be provided. */ export declare function itemsEquals(itemEquals?: EqualityComparer): EqualityComparer; /** * Uses `item.equals(other)` to determine equality. */ export declare function itemEquals(): EqualityComparer; /** * Checks if two items are both null or undefined, or are equal according to the provided equality comparer. */ export declare function equalsIfDefined(v1: T | undefined | null, v2: T | undefined | null, equals: EqualityComparer): boolean; /** * Returns an equality comparer that checks if two items are both null or undefined, or are equal according to the provided equality comparer. */ export declare function equalsIfDefined(equals: EqualityComparer): EqualityComparer; /** * Drills into arrays (items ordered) and objects (keys unordered) and uses strict equality on everything else. */ export declare function structuralEquals(a: T, b: T): boolean;