import { expect } from 'vitest'; export type MatcherState = ReturnType; export interface SyncExpectationResult { pass: boolean; message: () => string; actual?: unknown; expected?: unknown; } export type AsyncExpectationResult = Promise; export interface SyncMatcherFn { (this: T, received: any, ...expected: Array): SyncExpectationResult; } export interface AsyncMatcherFn { (this: T, received: any, ...expected: Array): AsyncExpectationResult; }