import type { GovernanceMode, GovernanceModulation, EffectiveThresholds, GateDecision, UncertaintyDecomposition, CalibrationMetrics, AutonomyLevel } from './types.js'; /** * Compute the mode factor from a symbolic governance mode. * * - forbidden (s=3) → 1.3 (maximum tightening) * - strict (s=2) → 1.2 (strong tightening) * - standard (s=1) → 1.1 (slight tightening) * - flexible (s=0) → 1.0 (no tightening — baseline) */ export declare function computeModeFactor(mode: GovernanceMode): number; /** * Compute the uncertainty factor from decomposed uncertainty. * * Bidirectional around a baseline epistemic ratio: * uncertainty_factor = 1 + (epistemic_ratio − baseline) × uncertaintyStrength * * Returns > 1.0 when epistemic ratio exceeds baseline (tighten). * Returns < 1.0 when epistemic ratio is below baseline (relax). * Returns = 1.0 at the baseline (neutral). */ export declare function computeUncertaintyFactor(uncertainty: UncertaintyDecomposition): number; /** * Compute the calibration factor from recent calibration metrics. * * Bidirectional around a target ECE: * calibration_factor = 1 + (ece − target_ece) × calibrationStrength * * Poor calibration (ECE > target) → factor > 1 → tighter governance. * Good calibration (ECE < target) → factor < 1 → earned relaxation. */ export declare function computeCalibrationFactor(calibration: CalibrationMetrics): number; /** * Compute the full governance modulation for a single threshold. * * NOTE: autonomyLevel is stored in the result but intentionally does NOT * affect threshold computation. Autonomy level governs authorization * (isActionPermitted) not threshold values. This is a deliberate design * choice — thresholds adapt to what the model knows (uncertainty) and * how well-calibrated it is, while autonomy gates what actions are * allowed at all. These are orthogonal concerns. */ export declare function computeModulation(baseThreshold: number, mode: GovernanceMode, uncertainty: UncertaintyDecomposition, calibration: CalibrationMetrics, autonomyLevel: AutonomyLevel): GovernanceModulation; /** Options for computing effective thresholds */ export interface ThresholdComputeOptions { vocabSize?: number; } /** * Compute effective thresholds for ALL configurable gates. * * Main entry point — takes the current system state * and produces adaptive thresholds for every gate. */ export declare function computeEffectiveThresholds(mode: GovernanceMode, uncertainty: UncertaintyDecomposition, calibration: CalibrationMetrics, autonomyLevel: AutonomyLevel, options?: ThresholdComputeOptions): EffectiveThresholds; /** * Make a gate decision by comparing an observed value against * the effective threshold, respecting immutable constraints. */ export declare function makeGateDecision(gateName: string, observedValue: number, modulation: GovernanceModulation, lowerIsStricter: boolean): GateDecision; //# sourceMappingURL=modulation.d.ts.map