type TestCallback = () => void | Promise; type MockImplementation = (...args: TArgs) => TResult; type MockFunction = ((...args: TArgs) => TResult) & { mockClear: () => void; mockRejectedValueOnce: (value: unknown) => MockFunction; mockResolvedValueOnce: (value: Awaited) => MockFunction; mockImplementation: (implementation: MockImplementation) => MockFunction; }; declare function createMock(implementation?: MockImplementation): MockFunction; declare function createExpect(actual: unknown): { resolves: { [k: string]: (...args: unknown[]) => Promise; }; rejects: { toThrow(expected?: new (...args: any[]) => unknown): Promise; }; toBe(expected: unknown): void; toEqual(expected: unknown): void; toStrictEqual(expected: unknown): void; toContain(expected: unknown): void; toMatch(expected: RegExp | string): void; toContainEqual(expected: unknown): void; toHaveProperty(property: string): void; toHaveLength(expected: number): void; toBeDefined(): void; toBeUndefined(): void; toBeTruthy(): void; toBeInstanceOf(expected: new (...args: any[]) => unknown): void; toBeGreaterThan(expected: number): void; toBeGreaterThanOrEqual(expected: number): void; toBeLessThanOrEqual(expected: number): void; toMatchObject(expected: Record): void; }; type DescribeFunction = ((name: string, callback: TestCallback) => void) & { skip: (name: string, callback: TestCallback) => void; }; declare const describe: DescribeFunction; export declare function beforeEach(callback: TestCallback): void; export declare function afterEach(callback: TestCallback): void; export declare function it(name: string, callback: TestCallback, timeout?: number): void; export declare const test: typeof it; export declare const expect: typeof createExpect; export declare const vi: { fn: typeof createMock; restoreAllMocks: () => void; }; export { describe };