import { AsymmetricMatchers, BaseExpect, MatcherContext, Matchers } from 'expect'; import { CustomMatch } from './matchers/contracts'; declare type AsymmetricMatcher_2 = { asymmetricMatch(other: unknown): boolean; toString(): string; getExpectedType?(): string; toAsymmetricMatcher?(): string; }; declare type CustomMatchAsymmetric = (this: Context, received: unknown) => boolean; declare type MatchersExt> = Matchers & { custom: (match: CustomMatch) => AsymmetricMatcher_2; }; declare type AsymmetricMatchersExt = AsymmetricMatchers & { custom: (match: CustomMatchAsymmetric | CustomMatch, message?: string | (() => string)) => AsymmetricMatcher_2; }; declare type Inverse = { /** * Inverse next match. If you know how to test something, `.not` lets you test its opposite. */ not: Matchers; }; declare type PromiseMatchersExt = { /** * Unwraps the reason of a rejected promise so any other match can be chained. * If the promise is fulfilled the assertion fails. */ rejects: MatchersExt> & Inverse>>; /** * Unwraps the value of a fulfilled promise so any other match can be chained. * If the promise is rejected the assertion fails. */ resolves: MatchersExt> & Inverse>>; }; export declare type ExpectExt = ((actual: T) => MatchersExt & Inverse> & PromiseMatchersExt) & BaseExpect & AsymmetricMatchersExt & Inverse>; export {};