/**
 * `defaultProductionGate` — composes the substrate's existing safety
 * primitives (red-team / reward-hacking / canary / heldout) into a single
 * Gate.decide shape. Closes the alignment + Anthropic-SI reviewers' "safety
 * primitives are off the critical path" blocker.
 *
 * The composition is opinionated — when consumers wire `runImprovementLoop`,
 * THIS gate is the default. Consumers can still pass a custom gate to
 * override; the recommended pattern is to compose THIS gate with whatever
 * extra domain-specific gates they need (`composeGate(defaultProductionGate(...), customGate)`).
 */
import type { RedTeamCase } from '../../red-team';
import type { RunRecord } from '../../run-record';
import type { Gate, Scenario } from '../types';
export interface DefaultProductionGateOptions {
    /** Required: scenarios held out from training; substrate compares
     *  candidate-on-holdout vs baseline-on-holdout. */
    holdoutScenarios: Scenario[];
    /** Minimum held-out lift the **paired-bootstrap CI lower bound** must clear
     *  to ship — NOT a point estimate. Default 0 ⇒ "confidently positive at the
     *  confidence level". Interpreted in the judge's native composite scale (set
     *  e.g. 2 for a 0-100 rubric to require a ≥2-point significant gain). */
    deltaThreshold?: number;
    /** Confidence level for the held-out + dimension bootstraps. Default 0.95. */
    confidence?: number;
    /** Bootstrap resamples. Default 2000. */
    bootstrapResamples?: number;
    /** Fixed bootstrap seed for a deterministic verdict. Default 1337. */
    bootstrapSeed?: number;
    /** Minimum paired holdout observations (scenarios × reps) before a
     *  significance claim is allowed; below it the gate HOLDS with `few_runs`
     *  rather than reading a degenerate CI. Default 3. */
    minProductiveRuns?: number;
    /** Critical judge dimensions that must NOT significantly regress even when
     *  the net composite rises (anti-Goodhart). The gate HOLDS if any listed
     *  dimension's paired-delta CI lower bound < −`regressionTolerance`. E.g.
     *  `['hallucination_free']` for a legal agent. */
    criticalDimensions?: string[];
    /** Tolerance for the per-dimension regression guard, in the dimension's
     *  native scale. When omitted it auto-scales off observed magnitudes:
     *  0.05 on [0,1], 5 on 0-100. */
    regressionTolerance?: number;
    /** Total $ budget for ALL cells in this campaign — including baseline + candidate.
     *  Composite verdict refuses to ship when spend exceeded budget. */
    budgetUsd?: number;
    /** Red-team cases to probe candidate outputs against. When omitted the
     *  substrate uses `DEFAULT_RED_TEAM_CORPUS`. Provide a domain-specific
     *  battery for tighter coverage. */
    redTeamBattery?: RedTeamCase[];
    /** Run records (oldest-first) needed for the reward-hacking detector.
     *  Substrate populates from prior production-loop generations. */
    recentRuns?: RunRecord[];
    /** When true, the gate refuses to ship if the reward-hacking detector
     *  fires at the `gaming` severity. Default true. */
    blockOnRewardHackingGaming?: boolean;
}
export declare function defaultProductionGate<TArtifact, TScenario extends Scenario>(options: DefaultProductionGateOptions): Gate<TArtifact, TScenario>;
//# sourceMappingURL=default-production-gate.d.ts.map