export type MatcherFn = (actualValue: T) => boolean; export interface MatcherLike { asymmetricMatch(other: unknown): boolean; toString(): string; getExpectedType?(): string; toAsymmetricMatcher?(): string; } export declare class Matcher implements MatcherLike { readonly asymmetricMatch: MatcherFn; private readonly description; $$typeof: symbol; inverse?: boolean; constructor(asymmetricMatch: MatcherFn, description: string); toString(): string; toAsymmetricMatcher(): string; getExpectedType(): string; } export declare class CaptorMatcher { $$typeof: symbol; readonly asymmetricMatch: MatcherFn; readonly value: T; readonly values: T[]; constructor(); getExpectedType(): string; toString(): string; toAsymmetricMatcher(): string; } export interface MatcherCreator { (expectedValue?: E): Matcher; } export type MatchersOrLiterals = { [K in keyof Y]: MatcherLike | Y[K]; }; export declare const any: MatcherCreator; export declare const anyBoolean: MatcherCreator; export declare const anyNumber: MatcherCreator; export declare const anyString: MatcherCreator; export declare const anyFunction: MatcherCreator; export declare const anySymbol: MatcherCreator; export declare const anyObject: MatcherCreator; export declare const anyArray: MatcherCreator; export declare const anyMap: MatcherCreator>; export declare const anySet: MatcherCreator>; export declare const isA: MatcherCreator; export declare const arrayIncludes: MatcherCreator; export declare const setHas: MatcherCreator, any>; export declare const mapHas: MatcherCreator, any>; export declare const objectContainsKey: MatcherCreator; export declare const objectContainsValue: MatcherCreator; export declare const notNull: MatcherCreator; export declare const notUndefined: MatcherCreator; export declare const notEmpty: MatcherCreator; export declare const captor: () => CaptorMatcher; export declare const matches: (matcher: MatcherFn) => Matcher;