/**
 * Compares two values for deep equality.
 * @param a - The first value to compare.
 * @param b - The second value to compare.
 * @returns - Returns `true` if the two values are deeply equal, otherwise `false`.
 * @example
 * isEqual({ a: 1 }, { a: 1 }); // true
 * isEqual([1, 2], [1, 2]);     // true
 * isEqual(new Date(0), new Date(0)); // true
 * isEqual(/abc/, /abc/);       // true
 * isEqual({ a: 1 }, { a: 2 }); // false
 * isEqual(null, null);         // true
 */
export default function isEqual<T, K>(a: T, b: K): boolean;
