export interface Handler { id: string; name: string; parent?: string; handler: () => void | Promise; children?: string[]; type: 'suite' | 'test'; status?: 'idle' | 'pass' | 'fail' | 'skip' | 'running'; logs: string[]; depth: number; only?: boolean; skip?: boolean; } type HookFn = () => void | Promise; export declare const handlers: Map; export declare const describe: { (name: string, handler: () => void): void; only(name: string, handler: () => void): void; skip(name: string, handler: () => void): void; }; export declare const it: { (name: string, handler: () => void | Promise): void; only(name: string, handler: () => void | Promise): void; skip(name: string, handler?: () => void | Promise): void; }; export declare const beforeEach: (fn: HookFn) => void; export declare const afterEach: (fn: HookFn) => void; export declare const clearTests: () => void; export interface RunnerEvents { onStart: (test: Handler) => void; onPass: (test: Handler, retryAttempt?: number) => void; onFail: (test: Handler, error: Error) => void; onSkip: (test: Handler) => void; onSuiteStart?: (suite: Handler) => void; onSuiteEnd?: (suite: Handler) => void; } export interface TestRunnerOptions { retryCount?: number; } export declare class TestRunner { private events; private retryCount; constructor(events: RunnerEvents, options?: TestRunnerOptions); runAll(): Promise>; runSingle(id: string): Promise; runByIds(ids: string[]): Promise>; private runSuiteByIds; private hasDescendantInSet; private runSuite; private runTest; } export {};