import { ThrowsCallback } from './assert/throws'; import type { fail } from './utils/fail'; export { State } from './mixins'; export interface ValueExpect { to: this; be: this; a: this; an: this; not: this; and: this; have: this; in: this; of: this; /** * Use deep equality for object checks */ deep: this; } type ArrayType = T extends (infer U)[] ? U : never; export interface ArrayExpect extends ValueExpect, ObjectExpect { length: NumberExpect & this; array(): this; every: GetExpectType>; } export interface BigIntExpect extends NumberExpect { } export interface BooleanExpect extends ValueExpect { } export interface DateExpect extends ValueExpect, ObjectExpect { } export interface FunctionExpect extends ValueExpect { } export interface NumberExpect extends ValueExpect { } export interface MapExpect extends ValueExpect { size: NumberExpect; } export interface ObjectExpect extends ValueExpect { size: NumberExpect; } export interface PromiseExpect extends ValueExpect { } export interface StringExpect extends ValueExpect { } export interface SymbolExpect extends ValueExpect { } declare const LooseSymbol: unique symbol; export interface Loose { [LooseSymbol]: true; } type AllExpects = ArrayExpect & BigIntExpect & BooleanExpect & DateExpect & FunctionExpect & NumberExpect & MapExpect & ObjectExpect & PromiseExpect & StringExpect & SymbolExpect & ValueExpect; export interface Expect { (actual: T): AllExpects; (actual: T): FunctionExpect; >(actual: T): PromiseExpect; (actual: T): ArrayExpect; (actual: T): DateExpect; >(actual: T): MapExpect; >(actual: T): ObjectExpect; (actual: T): NumberExpect; (actual: T): BigIntExpect; (actual: T): BooleanExpect; (actual: T): StringExpect; (actual: T): SymbolExpect; (actual: T): ValueExpect; fail: typeof fail; } type GetExpectType = T extends number ? NumberExpect : AllExpects; //# sourceMappingURL=expect.types.d.ts.map