import type { EveEvalDefinition, EveEvalInput, EveEvalInputFields } from "#evals/types.js";
import type { ExactDefinition } from "#public/definitions/exact.js";
/**
 * Defines one Eve eval.
 *
 * Requires a `scores` array, and a `model` only when a model-backed scorer
 * (e.g. the `Autoevals` wrappers) is present without its own model override —
 * the model is used solely for scoring, never for the agent under test. Pass
 * either `load` (an async case loader) or `cases` (a static array), but not
 * both. Eval identity is derived from the `evals/<path>.eval.ts` file path
 * by the discovery layer, so authoring `id` or `name` throws.
 *
 * Throws on invalid input: missing `scores`, a model-backed scorer without a
 * `model`, both or neither of `load`/`cases`, both `task.prompt` and
 * `task.messages`, `task.run`, a non-array `checks`, a non-positive or
 * non-integer `maxConcurrency`, or a negative or non-finite `timeoutMs`.
 */
export declare function defineEval<TInput extends EveEvalInput>(input: ExactDefinition<TInput, EveEvalInputFields>): EveEvalDefinition;
