/**
 * Event-derived progress predicates for the action-permission state machine.
 *
 * These helpers stay side-effect free: callers pass the current task state and
 * receive a decision derived from recorded tool proposals, grants, and evidence.
 */
import type { TaskExecutionState } from './protocol/types.js';
import type { EditNowNudge, RiskClass } from './protocol/task-permission-types.js';
export declare const RISK_REQUIRES_DURABLE: ReadonlyArray<RiskClass>;
export declare function hasGrantedRiskyToolAwaitingEvidence(taskState: TaskExecutionState): boolean;
export declare const ABANDONED_GRANT_BUDGET = 5;
export interface HardStopDecision {
    fire: boolean;
    reason?: string;
    nudge?: EditNowNudge;
    offendingCallToolUseId?: string;
}
export declare function shouldHardStopOnAbandonedGrant(taskState: TaskExecutionState): HardStopDecision;
