import type { ValidationRuleResult } from '../../../types/validation.js';
import type { RuleAction } from '../types.js';
export interface FileDecisionState {
    /** True only when every rule with issues has been accepted (none sent back). */
    accepted: boolean;
    /** True when at least one rule has been sent back. Wins over accepted in mixed states. */
    sent_back: boolean;
    /** Sum of issues across rules that have NOT yet been actioned. Drives the
     *  file-level "N issue(s)" pending pill. */
    pending_count: number;
}
/**
 * Derive the file-level decision pill state from per-rule actions.
 *
 * Rules with `issues.length === 0` are skipped — there's nothing for the
 * agent to decide on, so they don't contribute to the pending count and
 * don't block the "all accepted" verdict.
 *
 * Pure: no I/O, no mutation.
 */
export declare function compute_file_decision_state(rule_actions: Record<string, RuleAction> | undefined, rules_with_issues: ValidationRuleResult[]): FileDecisionState;
//# sourceMappingURL=file_decision_state.d.ts.map