import type { EvalPlugin } from "../plugin/types.js"; import type { JudgeConfig, ReporterConfig, ResolvedSuite, RunMode } from "./types.js"; /** Options for loading an eval configuration file. */ export interface LoadConfigOptions { /** Config file path or stem (without extension). Probes .ts/.mts/.js/.mjs extensions. @default "eval.config" */ readonly configPath?: string | undefined; /** Working directory for resolving relative paths. @default process.cwd() */ readonly cwd?: string | undefined; } /** Fully validated and resolved eval configuration. All defaults are applied and case files are loaded. */ export interface ValidatedConfig { /** All suites with cases fully resolved from file paths. */ readonly suites: readonly ResolvedSuite[]; readonly run: { /** Resolved default execution mode. @default "live" */ readonly defaultMode: RunMode; /** Resolved timeout in milliseconds per target call. @default 30000 */ readonly timeoutMs: number; readonly rateLimit?: number | undefined; }; readonly judge?: JudgeConfig | undefined; /** All plugins in registration order. Empty array if none configured. */ readonly plugins: readonly EvalPlugin[]; /** All reporters in registration order. Empty array if none configured. */ readonly reporters: readonly ReporterConfig[]; /** Resolved fixture storage directory path. */ readonly fixtureDir: string; /** Absolute path to the project root (directory containing the config file). */ readonly projectDir: string; } /** * Loads and validates an eval.config.ts file. * Resolves case file paths and returns a fully validated config. */ export declare function loadConfig(options?: LoadConfigOptions): Promise; //# sourceMappingURL=loader.d.ts.map