import type { ScorableRun, ScoreResult, Scorer, ScorerKind } from '../types.js';
/** {@link ApprovalOutcomeScorer}'s stable name. */
export declare const APPROVAL_OUTCOME_SCORER = "approval-outcome";
/**
 * Every HITL rejection is a negative quality label a human produced for free.
 *
 * The library already stops an `action` tool and asks a person "should this run?". That answer is
 * recorded on the tool call, and it is the only ground truth in the whole system that nobody had to
 * be paid to collect: an operator who clicks reject has told you the agent proposed the wrong thing,
 * in the words of the domain, at the moment it mattered. This scorer reads that back as the fraction
 * of a run's decided actions a human said yes to.
 *
 * `null` — not 1 — for a run that proposed no action, or whose actions are all still
 * `pending_approval`. Most runs are read-only and carry no human verdict at all; counting those as
 * perfect would bury the runs that do carry one under an average of ~1.
 */
export declare class ApprovalOutcomeScorer implements Scorer {
    readonly name = "approval-outcome";
    readonly kind: ScorerKind;
    score(run: ScorableRun): Promise<ScoreResult | null>;
}
//# sourceMappingURL=approval-outcome.scorer.d.ts.map