import type { CodeTestCase, RegisteredHook } from './types.js';
export declare function isCodeFile(filename: string): boolean;
export declare function computeTestCaseHash(tc: CodeTestCase): string;
export interface LoadedTestCase extends CodeTestCase {
    hash: string;
}
export interface LoadResult {
    testCases: LoadedTestCase[];
    filePath: string;
    /**
     * Benchmark groups derived from `describe()` blocks in the file.
     * Maps benchmark name (the joined describe path, e.g. 'RCA Suite' or
     * 'A > B' for nested) to the test case names within. Tests outside any
     * `describe()` are not in this map; they go to the file-default benchmark
     * (CLI / server names it after the filename).
     */
    benchmarks: Map<string, string[]>;
    /**
     * All lifecycle hooks (`beforeEach`/`afterEach`/`beforeAll`/`afterAll`)
     * registered while loading this file. Empty when the file declares none.
     * The orchestrator filters by `(sourceFile, describePath)` at run time.
     */
    hooks: RegisteredHook[];
}
export declare function loadTestCasesFromModule(filePath: string): Promise<LoadResult>;
//# sourceMappingURL=loader.d.ts.map