export type EqualityComparer = (a: T, b: T) => boolean; /** * Compares two items for equality using strict equality. */ export declare const strictEquals: EqualityComparer; /** * Two items are considered equal, if their stringified representations are equal. */ export declare function jsonStringifyEquals(): 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; /** * `getStructuralKey(a) === getStructuralKey(b) <=> structuralEquals(a, b)` * (assuming that a and b are not cyclic structures and nothing extends globalThis Array). */ export declare function getStructuralKey(t: unknown): string; //# sourceMappingURL=equals.d.ts.map