import type { Charter, CharterDelta, CharterClarificationRequest } from "../types/charter.js"; /** * The True-charter gate: a `true` charter is nominatable-never-assertable and * falsifiable-or-drop. It survives ONLY if it names BOTH a concrete alternative and * a concrete cost the user seems to pay unaware; an un-falsifiable "what you truly * want is elegance" nomination is slop and is dropped. Non-`true` charters are never * dropped by this gate (their confidence is handled by charterReviewDisposition). * * Returns the surviving charters plus a record of what was dropped and why, so the * caller can surface the drop as a validation issue rather than silently discarding. */ export declare function applyTrueCharterGate(charters: Charter[]): { kept: Charter[]; dropped: Array<{ charter_id: string; reason: string; }>; }; /** * Whether a review that depends on this charter may OPINE or must only FLAG for * human intent input. A low-confidence charter (sparse or ambiguous source) is the * central failure mode's source, so any dependent review is downgraded to * "flag for human, never opine." This is the general guard of which the True-charter * gate above is the strictest instance. */ export declare function charterReviewDisposition(charter: Charter): "opine" | "flag_for_human"; /** * Route a charter delta to the human channel when either charter it references is * low-confidence — a delta between two attributable sides is only adjudicable if * both sides are trustworthy; if one is shaky, the tool must not opine (route it to * the human) regardless of the delta's nominal `kind`. The delta is returned * unchanged when both sides are confident (or a side is absent from `charters`). * * `pair` holds charter KINDS (symmetric), so we match against the charters present * of those kinds; a low-confidence charter of a referenced kind trips the downgrade. */ export declare function gateCharterDelta(delta: CharterDelta, charters: Charter[]): CharterDelta; /** * The blast-radius RISK GATE (Phase D; design §"Blast radius — the ranking and the * risk gate"). Blast radius is simultaneously priority (high-blast = high-value) * AND risk: acting on a WRONG high-blast finding is catastrophic, so it must clear * a MUCH higher bar of independent adversarial refutation before it is actionable. * This gate is the deterministic side of that bar: a question whose blast radius is * at/above `highBlastThreshold` may only reach the interactive human channel if it * has cleared `requiredRefutations` rounds of independent refutation; otherwise it * is downgraded to `finding_only` (written as a lead, never asked interactively). * Below the threshold, a question is interactive without the extra bar. * * Pure + deterministic: same request + same observed refutation count always * yields the same disposition. `observedRefutations` is supplied by the caller (the * intensity dial's adversarial rounds); the gate never runs the refutation itself. */ export declare function riskGateClarification(request: CharterClarificationRequest, observedRefutations: number, opts: { highBlastThreshold: number; requiredRefutations: number; }): CharterClarificationRequest["disposition"]; //# sourceMappingURL=charterGate.d.ts.map