/**
 * src/skill-loop/evaluator.ts
 *
 * Eval harness for SkillCandidates against a verifier set.
 *
 * Scoring is deterministic string-similarity (Jaccard token overlap).
 * No LLM calls — consumer provides the executor function.
 *
 * Statistical significance: Welch's t-test (p < 0.05 AND delta >= 0.10).
 *
 * @module skill-loop/evaluator
 */
import type { SkillCandidate } from "./candidate.js";
export interface VerifierExample {
    input: string;
    expectedOutput: string;
    domain: string;
}
export interface EvalResult {
    candidateId: string;
    verifierSetSize: number;
    meanScore: number;
    stddev: number;
    /** Fraction of examples where score >= 0.7 */
    passRate: number;
    incumbentMeanScore: number;
    deltaVsIncumbent: number;
    /** Welch's t-test p-value vs incumbent */
    pValue: number;
    /** true if p < 0.05 AND delta >= 0.10 */
    significant: boolean;
}
/**
 * Evaluate a SkillCandidate against a verifier set.
 *
 * @param candidate       - The skill candidate under evaluation.
 * @param verifierSet     - Ground-truth input/output pairs.
 * @param incumbentScore  - Mean score of the current production skill.
 * @param executor        - Runs the skill on an input, returns output.
 */
export declare function evaluateCandidate(candidate: SkillCandidate, verifierSet: VerifierExample[], incumbentScore: number, executor: (skill: string, input: string) => Promise<string>): Promise<EvalResult>;
//# sourceMappingURL=evaluator.d.ts.map