export declare abstract class AsymmetricMatcher { protected value: T; protected inverse: boolean; constructor(value: T, inverse?: boolean); abstract equals(other: unknown): boolean; } export declare class Anything extends AsymmetricMatcher { equals(other: unknown): boolean; } export declare function anything(): Anything; export declare class Any extends AsymmetricMatcher { constructor(value: unknown); equals(other: unknown): boolean; } export declare function any(c: unknown): Any; export declare class ArrayContaining extends AsymmetricMatcher { constructor(arr: any[], inverse?: boolean); equals(other: any[]): boolean; } export declare function arrayContaining(c: any[]): ArrayContaining; export declare function arrayNotContaining(c: any[]): ArrayContaining; export declare class CloseTo extends AsymmetricMatcher { #private; constructor(num: number, precision?: number); equals(other: number): boolean; } export declare function closeTo(num: number, numDigits?: number): CloseTo; export declare class StringContaining extends AsymmetricMatcher { constructor(str: string, inverse?: boolean); equals(other: string): boolean; } export declare function stringContaining(str: string): StringContaining; export declare function stringNotContaining(str: string): StringContaining; export declare class StringMatching extends AsymmetricMatcher { constructor(pattern: string | RegExp, inverse?: boolean); equals(other: string): boolean; } export declare function stringMatching( pattern: string | RegExp, ): StringMatching; export declare function stringNotMatching( pattern: string | RegExp, ): StringMatching; export declare class ObjectContaining extends AsymmetricMatcher> { constructor(obj: Record, inverse?: boolean); equals(other: Record): boolean; } export declare function objectContaining( obj: Record, ): ObjectContaining; export declare function objectNotContaining( obj: Record, ): ObjectContaining;