export interface RuleCodeSafetySample { toolName: string; decision: 'allow' | 'block' | 'requireApproval' | 'auto_correct' | 'error'; outsideApprovedScope: boolean; protectedCapabilityMatched?: boolean; neutralProbeFailed?: boolean; healthFailure?: 'load' | 'compatibility' | 'context' | 'invalid_result' | 'timeout' | 'exception'; } export interface RuleCodeSafetyCircuitState { consecutiveErrors: number; consecutiveBlocks: { toolName: string; }[]; latestEligible: { blocked: boolean; outsideApprovedScope: boolean; }[]; } export type RuleCodeSafetyTripReason = 'protected_capability_matched' | 'host_liveness_probe_failed' | 'runtime_health_failure' | 'three_consecutive_errors' | 'broad_consecutive_blocking' | 'outside_scope_block_ratio'; export declare function initialRuleCodeSafetyCircuitState(): RuleCodeSafetyCircuitState; export declare function evaluateRuleCodeSafetyCircuit(state: RuleCodeSafetyCircuitState, sample: RuleCodeSafetySample): { state: RuleCodeSafetyCircuitState; trip: RuleCodeSafetyTripReason | null; }; //# sourceMappingURL=rulecode-safety-circuit-breaker.d.ts.map