/** * `deterministic:warned_rule` (DES-trigger-registry §4.3 row 7 "risky-call", §4.4; TR-W6). * * Steering already has the never-blocking class: a rule with `effect: warn` fires and is RECORDED on * the decision without blocking, and (TR-W2) the gate fold replays every fired rule id on * `governanceHookFired.firedPolicies`, whatever the decision. This check projects that: for each * fired id whose rule is `warn`, one flag naming the rule — the operator asked to be told, not * stopped. There is no second matcher; the rule's effect is read from the store the daemon already * holds (`ctx.rules`, the registry's bounded snapshot of `listConformanceRules`). * * §7: the row names the rule ID and the tool, never the rule's text and never the command — a * steering statement can be the operator's own words, and no operator text rides the bus. Studio * resolves the id to the rule. * * Decisions: `deny` is the engine's own record (not this row). `allow` and `allow_with_conditions` * both carry fired warn rules (the entry's filter is "any decision but deny"). * * Timing: `governanceHookFired` is emitted at gate time, not live, so the flag appears when the unit * reaches its gate — acceptable for an advisory flag (§4.3 row 7). Coverage: an engine whose frames * carry no `firedPolicies` is "too old"; a store that cannot be read is "not readable". */ import type { WatchCheck } from '../types.js'; /** Steering severity → watch severity: the flag is as loud as the rule asked to be. */ export declare function watchSeverityOf(ruleSeverity: string | undefined): 'high' | 'medium' | 'info'; export declare const warnedRuleCheck: WatchCheck, Record>; //# sourceMappingURL=warned-rule.d.ts.map