/**
 * Checks if `a` and `b` are structurally equal using the following algorithm:
 *
 * - primitives are compared by value
 * - functions are compared by reference
 * - objects (including arrays) are checked to have the same properties and
 *   their values are compared recursively using the same algorithm
 */
export default function equal(a: unknown, b: unknown): boolean;
