import type { EveEval, EveEvalConfig } from "#evals/types.js"; /** * Discovers eval files under `/evals/` by recursively * scanning for files matching `*.eval.ts`. * * Returns absolute paths sorted alphabetically by relative path. */ export declare function discoverEvalFiles(appRoot: string): Promise; /** * Returns true when `evalId` matches one of the requested filters. A filter * matches its exact eval id or any eval nested under it, so `"runtime"` * matches both `evals/runtime.eval.ts` and every eval in `evals/runtime/` * (and every entry of an array-exported `evals/runtime.eval.ts`). */ export declare function matchesEvalFilter(evalId: string, filters: readonly string[]): boolean; /** * Imports a discovered eval file and stamps the path-derived id(s) onto * the eval definition(s). * * The file must `export default` either one `EveEvalDefinition` (produced * by `defineEval()`) or an array of them. A single definition derives its * id from the file path; array entries derive `/` ids with * the index zero-padded to four digits (e.g. `"weather/0000"`). */ export declare function importEvalFile(appRoot: string, filePath: string): Promise; /** * Discovers and imports all eval files, optionally filtering by eval id. * Filters match exactly or by directory prefix (see {@link matchesEvalFilter}). * * Throws when two files derive the same eval id (e.g. an array-exported * `evals/weather.eval.ts` colliding with `evals/weather/0000.eval.ts`). */ export declare function discoverAndImportEvals(appRoot: string, evalIds?: readonly string[]): Promise; /** * Discovers and imports the required `evals/evals.config.ts` run-wide * configuration (produced by `defineEvalConfig()`). * * Throws when the file is missing or does not default-export a valid * `EveEvalConfig`. */ export declare function discoverEvalConfig(appRoot: string): Promise;