import type { CogitatorConfig } from '@cogitator-ai/types'; /** What `cogitator eval` needs from an `EvalSuite`, checked at runtime on the default export. */ export interface EvalSuiteLike { run(options?: { maxCases?: number; signal?: AbortSignal; }): Promise; } export interface EvalSuiteResultLike { assertions: Array<{ name: string; passed: boolean; message: string; }>; aggregated: Record; stats: { total: number; errors: number; duration: number; cost: number; }; report(type: 'console' | 'json', options?: { path?: string; }): void; } export declare function isEvalSuite(value: unknown): value is EvalSuiteLike; /** The eval files under `dir`, `*.eval.ts` and friends, sorted for a stable order. */ export declare function findEvalFiles(dir: string): string[]; /** The eval files to run: the arguments as given, or every file under `evals/`. */ export declare function resolveEvalFiles(projectDir: string, args: readonly string[]): string[]; /** * The credential the default model is missing, or undefined when its provider * has everything it needs. Evals call the model, so without a key they cannot * run, and CI on a fork without secrets skips them instead of failing. */ export declare function missingCredential(config: CogitatorConfig): string | undefined; export interface SuiteOutcome { file: string; passed: boolean; stats: EvalSuiteResultLike['stats']; metrics: Record; assertions: EvalSuiteResultLike['assertions']; } /** Whether a finished suite counts as passed: every assertion holds and not every case failed. */ export declare function suitePassed(result: EvalSuiteResultLike): boolean; export declare function outcomeOf(projectDir: string, file: string, result: EvalSuiteResultLike): SuiteOutcome; //# sourceMappingURL=evals.d.ts.map