import type { Any } from '../../../interface'; import type { DvalaModule } from '../interface'; export interface TestEntry { /** Full test name including describe group prefixes, separated by ' > ' */ fullName: string; /** The test body function to execute */ body: Any; /** Whether the test is skipped */ skip: boolean; } /** * A TestCollector accumulates test registrations during evaluation of a .test.dvala file. * The runner creates a collector, passes it to createTestModule(), and reads the * collected tests after evaluation completes. */ export interface TestCollector { tests: TestEntry[]; /** Stack of describe group names for nested describe blocks */ describeStack: string[]; /** Depth of #skip nesting — tests registered while > 0 are automatically skipped */ skipDepth: number; } export declare function createTestCollector(): TestCollector; /** * Creates a test module bound to a specific collector. * Each .test.dvala file gets its own collector + module instance, * so test registrations are isolated per file. */ export declare function createTestModule(collector: TestCollector): DvalaModule;