///
declare type TMockFn = jest.Mock;
declare type TNumber = number | bigint;
declare type TConstructor = {
new (...args: never): T;
};
declare type TFunction = (...args: Args) => R;
declare type TPromisify = T extends (...args: never[]) => unknown ? (...args: Parameters) => Promise> : never;
declare type TPromisifyAll = {
readonly [K in keyof T]: TPromisify;
};
declare type TExpectAsync = Omit>, `not`> & {
readonly not: TPromisifyAll>;
};
export declare type TExpect = {
readonly not: TExpect;
readonly resolves: T extends Promise ? TExpectAsync : never;
readonly rejects: T extends Promise ? TExpectAsync : never;
readonly toBe: (result: T) => void;
readonly toHaveBeenCalled: T extends TMockFn ? () => void : never;
readonly toBeCalled: T extends TMockFn ? () => void : never;
readonly toHaveBeenCalledTimes: T extends TMockFn ? (n: number) => void : never;
readonly toBeCalledTimes: T extends TMockFn ? (n: number) => void : never;
readonly toHaveBeenCalledWith: T extends TMockFn ? (...args: Parameters) => void : never;
readonly toBeCalledWith: T extends TMockFn ? (...args: Parameters) => void : never;
readonly toHaveBeenLastCalledWith: T extends TMockFn ? (...args: Parameters) => void : never;
readonly lastCalledWith: T extends TMockFn ? (...args: Parameters) => void : never;
readonly toHaveBeenNthCalledWith: T extends TMockFn ? (n: number, ...args: Parameters) => void : never;
readonly nthCalledWith: T extends TMockFn ? (n: number, ...args: Parameters) => void : never;
readonly toHaveReturned: T extends TMockFn ? () => void : never;
readonly toReturn: T extends TMockFn ? () => void : never;
readonly toHaveReturnedTimes: T extends TMockFn ? (n: number) => void : never;
readonly toReturnTimes: T extends TMockFn ? (n: number) => void : never;
readonly toHaveReturnedWith: T extends TMockFn ? (value: ReturnType) => void : never;
readonly toReturnWith: T extends TMockFn ? (value: ReturnType) => void : never;
readonly toHaveLastReturnedWith: T extends TMockFn ? (value: ReturnType) => void : never;
readonly lastReturnedWith: T extends TMockFn ? (value: ReturnType) => void : never;
readonly toHaveNthReturnedWith: T extends TMockFn ? (n: number, value: ReturnType) => void : never;
readonly nthReturnedWith: T extends TMockFn ? (n: number, value: ReturnType) => void : never;
readonly toHaveLength: T extends {
readonly length: number;
} ? (length: number) => void : never;
readonly toHaveProperty: (key: K, value?: T[K]) => void;
readonly toBeCloseTo: T extends TNumber ? (n: TNumber, digits?: number) => void : never;
readonly toBeDefined: undefined extends T ? () => void : never;
readonly toBeFalsy: () => void;
readonly toBeGreaterThan: T extends TNumber ? (n: TNumber) => void : never;
readonly toBeGreaterThanOrEqual: T extends TNumber ? (n: TNumber) => void : never;
readonly toBeLessThan: T extends TNumber ? (n: TNumber) => void : never;
readonly toBeLessThanOrEqual: T extends TNumber ? (n: TNumber) => void : never;
readonly toBeInstanceOf: T extends object ? (Class: TConstructor) => void : never;
readonly toBeNull: null extends T ? () => void : never;
readonly toBeTruthy: () => void;
readonly toBeUndefined: undefined extends T ? () => void : never;
readonly toBeNaN: T extends number ? () => void : never;
readonly toContain: T extends Readonly> ? (item: U) => void : never;
readonly toContainEqual: T extends Readonly> ? (item: U) => void : never;
readonly toEqual: (result: T) => void;
readonly toMatch: T extends string ? (match: RegExp | string) => void : never;
readonly toMatchObject: (result: Partial) => void;
readonly toMatchSnapshot: (propertyMatchers?: Partial, hint?: string) => void;
readonly toMatchInlineSnapshot: (propertyMatchers: Partial, inlineSnapshot: string) => void;
readonly toStrictEqual: (result: T) => void;
readonly toThrow: T extends TFunction ? (error?: unknown) => void : never;
readonly toThrowError: T extends TFunction ? (error?: unknown) => void : never;
readonly toThrowErrorMatchingSnapshot: T extends TMockFn ? (hint?: string) => void : never;
readonly toThrowErrorMatchingInlineSnapshot: T extends TMockFn ? (inlineSnapshot: string) => void : never;
};
export declare const tExpect: (t: T) => TExpect;
export {};