/**
 * PolicyEnforcementService — MissionPolicy enforcement logic
 *
 * Checks whether a given action is permitted under a Mission's policy,
 * and evaluates escalation rules against the current context.
 *
 * This service is called from the task delegation path, TaskPoolService,
 * and anywhere autonomy needs to be gated.
 *
 * @module services/policy/policy-enforcement.service
 */
import type { MissionPolicy, PolicyAction, PolicyDecision, EscalationRule, EscalationContext, Mission } from '../../types/v2/index.js';
/**
 * Result of evaluating escalation rules.
 */
export interface EscalationResult {
    /** Whether any escalation was triggered */
    triggered: boolean;
    /** The rules that were triggered */
    triggeredRules: EscalationRule[];
    /** The most severe action required */
    requiredAction?: 'pause' | 'notify' | 'block';
}
export declare class PolicyEnforcementService {
    /**
     * Checks whether an action is allowed under the given Mission's policy.
     *
     * @param action - The action being attempted
     * @param mission - The Mission whose policy governs this action
     * @param context - Optional escalation context for rule evaluation
     * @returns PolicyDecision indicating whether the action is allowed
     *
     * @example
     * ```typescript
     * const decision = service.checkPolicy('create_task', mission);
     * if (!decision.allowed) {
     *   console.log(`Blocked by ${decision.blockedBy}: ${decision.reason}`);
     * }
     * ```
     */
    checkPolicy(action: PolicyAction, mission: Mission, context?: EscalationContext): PolicyDecision;
    /**
     * Checks whether a Mission has capacity for more parallel executions.
     *
     * @param mission - The Mission to check
     * @param currentExecutions - Number of currently running executions
     * @returns PolicyDecision indicating whether another execution is allowed
     */
    checkParallelCapacity(mission: Mission, currentExecutions: number): PolicyDecision;
    /**
     * Evaluates escalation rules against the current context.
     *
     * @param rules - Escalation rules to evaluate
     * @param context - Current mission execution context
     * @returns EscalationResult with triggered rules and required action
     */
    evaluateEscalationRules(rules: EscalationRule[], context: EscalationContext): EscalationResult;
    /**
     * Performs a dry-run policy check — simulates without side effects.
     * Useful for the API dry-run endpoint.
     *
     * @param action - The action to simulate
     * @param policy - The policy to check against
     * @param context - Optional escalation context
     * @returns PolicyDecision (same as checkPolicy but guaranteed no side effects)
     */
    dryRunCheck(action: PolicyAction, policy: MissionPolicy, context?: EscalationContext): PolicyDecision;
    /**
     * Checks whether a single escalation rule is triggered by the context.
     *
     * @param rule - The rule to evaluate
     * @param context - The execution context
     * @returns True if the rule's condition exceeds its threshold
     */
    private isRuleTriggered;
}
//# sourceMappingURL=policy-enforcement.service.d.ts.map