import { type LanguageModel } from "ai";
import type { AgentModelOptionsDefinition } from "#shared/agent-definition.js";
import type { EveEvalScorer } from "#evals/types.js";
/**
 * Optional per-scorer overrides for model-backed Autoevals scorers. When
 * omitted, the eval's `model` and `modelOptions` apply.
 */
export interface AutoevalsModelScorerOptions {
    /** Judge model for this scorer. Overrides the eval judge model. */
    readonly model?: LanguageModel;
    /** Provider options for this scorer. Eve merges them over the eval's `modelOptions`. */
    readonly modelOptions?: AgentModelOptionsDefinition;
}
/**
 * Options for {@link closedQA}. Extends {@link AutoevalsModelScorerOptions}
 * with the required free-form `criteria` the judge applies.
 */
export interface AutoevalsClosedQAOptions extends AutoevalsModelScorerOptions {
    /**
     * Natural-language criterion the judge model evaluates the output against.
     *
     * @example "The answer must mention the refund policy."
     */
    readonly criteria: string;
}
/**
 * Scores output factuality against the case `expected` value using the
 * Autoevals Factuality grader. Requires a per-case `expected` and a judge
 * model (the eval `model`/`modelOptions`, overridable via `options`).
 * Returns a graded score between 0 and 1.
 */
export declare function factuality(options?: AutoevalsModelScorerOptions): EveEvalScorer;
/**
 * Scores whether `output` summarizes the case `input` better than the case
 * `expected` summary, using the Autoevals Summary grader. Requires a per-case
 * `expected` and a judge model (the eval `model`/`modelOptions`, overridable
 * via `options`). Returns a graded score between 0 and 1.
 */
export declare function summary(options?: AutoevalsModelScorerOptions): EveEvalScorer;
/**
 * Scores semantic equivalence between the `output` SQL and the case `expected`
 * SQL using the model-judged Autoevals Sql grader. Requires a per-case
 * `expected` and a judge model (the eval `model`/`modelOptions`, overridable
 * via `options`). For a deterministic check, use `Sql.exactNormalized()`
 * instead.
 */
export declare function sql(options?: AutoevalsModelScorerOptions): EveEvalScorer;
/**
 * Judges whether `output` meets a required free-form natural-language
 * `criteria` using a judge model.
 *
 * Use this when "correct" cannot be expressed as exact or fuzzy match against
 * an `expected` value (for example, "must cite a source" or "must apologize
 * before refusing"). The `criteria` is the only required field; the judge model
 * comes from the eval `model`/`modelOptions`, overridable via `options`.
 * Per-case `expected` is ignored.
 */
export declare function closedQA(options: AutoevalsClosedQAOptions): EveEvalScorer;
