/**
 * Public types for the knowledge-probe mode handler.
 */
import type { PromptfooPrompt, PromptfooProvider, PromptfooTestCase } from "../../promptfoo-compiler.js";
import type { RubricResolutionInput } from "../../rubric-resolution.js";
/** Options for compiling a knowledge probe task */
export interface KnowledgeProbeCompileOptions {
    /** Grader provider for LLM-graded assertions */
    graderProvider?: string;
    /** Model registry — knowledge probes run across all configured models */
    models?: {
        id: string;
        label: string;
        config?: Record<string, unknown>;
    }[];
    /** Rubric config (templates, weights, profiles) — needed to resolve
     * templated `llm-rubric` assertions to dimension metadata. */
    rubricConfig?: RubricResolutionInput;
}
/** Result of compiling a single knowledge probe task */
export interface KnowledgeProbeCompileResult {
    /** Promptfoo provider configs (one per model) */
    providers: PromptfooProvider[];
    /** Compiled test cases */
    tests: PromptfooTestCase[];
    /** Prompts for evaluation */
    prompts: PromptfooPrompt[];
    /** Mode metadata for cross-model comparison */
    metadata: KnowledgeProbeMetadata;
    /** Warnings generated during compilation */
    warnings: string[];
}
/** Metadata attached to knowledge probe results for comparison */
export interface KnowledgeProbeMetadata {
    /** Evaluation mode identifier */
    mode: "knowledge-probe";
    /** Probe strategy used */
    probeStrategy: string;
    /** Whether doc context was intentionally excluded */
    noDocContext: true;
    /** Whether retrieval metrics are applicable */
    retrievalMetrics: false;
}
/** Validation errors for knowledge probe task definitions */
export interface KnowledgeProbeValidationError {
    field: string;
    message: string;
}
