import type { TypeMatcher } from './matcher';
/**
 * Compare values using deep equality.
 *
 * @param expected
 * @param strict By default, this matcher will treat a missing key in an object
 *   and a key with the value `undefined` as not equal. It will also consider
 *   non `Object` instances with different constructors as not equal. Setting
 *   this to `false` will consider the objects in both cases as equal.
 *
 * @see {@link It.containsObject} or {@link It.isArray} if you want to nest matchers.
 * @see {@link It.is} if you want to use strict equality.
 */
export declare const deepEquals: <T>(expected: T, { strict, }?: {
    strict?: boolean;
}) => TypeMatcher<T>;
