/** * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ export declare const arrayBufferEquality: ( a: unknown, b: unknown, ) => boolean | undefined; /** * Structural type for any object honoring Jest's asymmetric matcher protocol * (e.g. `expect.any(...)`, `expect.objectContaining(...)`). Detected at runtime * by {@link equals}. */ export declare type AsymmetricMatcher = { asymmetricMatch(other: unknown): boolean; toString(): string; getExpectedType?(): string; toAsymmetricMatcher?(): string; }; /** * Replaces `T` with `T | AsymmetricMatcher`, recursing into nested objects and * arrays: * ```ts * type DeepAsymmetricMatcher; // AsymmetricMatcher | boolean * type DeepAsymmetricMatcher<{ foo: number }>; // AsymmetricMatcher | { foo: AsymmetricMatcher | number } * type DeepAsymmetricMatcher<[string]>; // AsymmetricMatcher | [AsymmetricMatcher | string] * ``` */ declare type DeepAsymmetricMatcher = T extends object ? | AsymmetricMatcher | { [K in keyof T]: DeepAsymmetricMatcher; } : AsymmetricMatcher | T; export declare function emptyObject(obj: unknown): boolean; export declare const equals: EqualsFunction; export declare type EqualsFunction = ( a: unknown, b: unknown, customTesters?: Array, strictCheck?: boolean, ) => boolean; /** * Like the built-in `Parameters` utility type, but each parameter accepts an * asymmetric matcher (recursively for nested objects), and overloaded functions * yield a union of all overload parameter tuples. */ export declare type FunctionParameters = FunctionParametersInternal extends never ? Array : FunctionParametersInternal; /** * 1. If the function is overloaded or has no parameters → overloaded form * (union of tuples, up to 15 overloads). * 2. If the function has parameters → simple form. * 3. else → `never`. */ declare type FunctionParametersInternal = F extends { (...args: infer P1): any; (...args: infer P2): any; (...args: infer P3): any; (...args: infer P4): any; (...args: infer P5): any; (...args: infer P6): any; (...args: infer P7): any; (...args: infer P8): any; (...args: infer P9): any; (...args: infer P10): any; (...args: infer P11): any; (...args: infer P12): any; (...args: infer P13): any; (...args: infer P14): any; (...args: infer P15): any; } ? | WithAsymmetricMatchers | WithAsymmetricMatchers | WithAsymmetricMatchers | WithAsymmetricMatchers | WithAsymmetricMatchers | WithAsymmetricMatchers | WithAsymmetricMatchers | WithAsymmetricMatchers | WithAsymmetricMatchers | WithAsymmetricMatchers | WithAsymmetricMatchers | WithAsymmetricMatchers | WithAsymmetricMatchers | WithAsymmetricMatchers | WithAsymmetricMatchers : F extends (...args: infer P) => any ? WithAsymmetricMatchers

: never; export declare const getObjectKeys: (object: object) => Array; export declare const getObjectSubset: ( object: any, subset: any, customTesters?: Array, seenReferences?: WeakMap, ) => any; declare type GetPath = { hasEndProp?: boolean; endPropIsDefined?: boolean; lastTraversedObject: unknown; traversedPath: Array; value?: unknown; }; export declare const getPath: ( object: Record, propertyPath: string | Array, ) => GetPath; export declare function isA(typeName: string, value: unknown): value is T; export declare const isError: (value: unknown) => value is Error; export declare const isOneline: ( expected: unknown, received: unknown, ) => boolean; export declare const iterableEquality: ( a: any, b: any, customTesters?: Array, aStack?: Array, bStack?: Array, ) => boolean | undefined; export declare const partition: ( items: Array, predicate: (arg: T) => boolean, ) => [Array, Array]; export declare const pathAsArray: (propertyPath: string) => Array; export declare const sparseArrayEquality: ( a: unknown, b: unknown, customTesters?: Array, ) => boolean | undefined; export declare const subsetEquality: ( object: unknown, subset: unknown, customTesters?: Array, ) => boolean | undefined; export declare type Tester = ( this: TesterContext, a: any, b: any, customTesters: Array, ) => boolean | undefined; export declare interface TesterContext { equals: EqualsFunction; } export declare const typeEquality: (a: any, b: any) => boolean | undefined; /** * Maps each parameter slot of a tuple to `T | AsymmetricMatcher` (recursively * via {@link DeepAsymmetricMatcher}). Falls back to `never` for the * `Array` "any-shape" case so that {@link FunctionParameters} can * collapse it back to `Array` for `UnknownFunction`-like mocks. */ declare type WithAsymmetricMatchers

> = Array extends P ? never : { [K in keyof P]: DeepAsymmetricMatcher; };