import type { Constructor, Primitive, Primitives, UnknownRecord, ValueOfA } from "./ts/types.js"; interface Expect { any(constructor: C extends Constructor ? C : any): C extends Constructor ? Primitive : C; arrayContaining(expected: Array): T[]; objectContaining(expected: T): T; stringMatching(expected: T): T; } interface ExpectGeneric extends Expect { (actual: unknown, message?: string): any; extend(matchers: unknown): void; } export type Matchers = { typeOrNull: (matcher: T) => Primitive | null; typeOrUndefined: (matcher: T) => Primitive | undefined; objectContainingOrEmpty: (matcher: T) => T | UnknownRecord; objectContainingOrUndefined: (matcher: T) => T | undefined; objectContainingOrNull: (matcher: T) => T | null; objectContainingOrEmptyOrNullish: (matcher: T) => T | UnknownRecord | undefined | null; keylessObjectContaining: (matcher: T) => Record; arrayContainingOrEmpty: (matcher: [T]) => T[] | []; arrayContainingOrEmptyOrUndefined: (matcher: [T]) => T[] | [] | undefined; enum: (matcher: T) => ValueOfA; }; export type EExpect = Expect & Matchers & T; export declare const getExpect: (expect: T) => EExpect; export {}; //# sourceMappingURL=test.d.ts.map