import type { BlockedGate } from './sop-advance-service.js'; export type MatchedGuard = { sopId: string; phase: string; /** The non-passing gates that block this phase's guarded action. */ failing: BlockedGate[]; }; export type EnforceDecision = { decision: 'allow'; bypassed?: boolean; warnings?: string[]; } | { decision: 'deny'; reason: string; matched: MatchedGuard[]; }; export declare class GateBypassError extends Error { readonly code: string; constructor(code: string, message: string); } /** * Record a one-shot bypass token for `:` in this project. The next * `enforceBashCommand` that the transition blocks consumes it and allows once. * Capped per-project-per-SOP by MAX_BYPASSES_PER_SESSION. */ export declare function recordGateBypass(projectRoot: string, sopId: string, phase: string, reason: string): { count: number; }; /** * Decide whether a Bash command may run. Pure given the filesystem; never throws * (fail-open on any internal error). Returns allow/deny for the PreToolUse hook. */ export declare function enforceBashCommand(projectRoot: string, command: string): Promise;