export type ExecutionRisk = "low" | "medium" | "high"; export interface ExecutionAction { readonly kind: "shell" | "read" | "write" | "edit" | string; readonly operation: string; readonly paths?: readonly string[]; readonly command?: string; readonly risk?: ExecutionRisk; readonly metadata?: Readonly>; } export interface ExecutionDecision { readonly allowed: boolean; readonly reason?: string; readonly modified?: Partial; /** When true, tool definitions should expose `exclusive: true` for pre-dispatch serialization. */ readonly exclusive?: boolean; } export interface ExecutionPolicy { check(action: ExecutionAction): ExecutionDecision | Promise; } export declare class ExecutionDeniedError extends Error { readonly action: ExecutionAction; readonly decision: ExecutionDecision; readonly code = "ERR_PRISM_EXECUTION_DENIED"; constructor(action: ExecutionAction, decision: ExecutionDecision); } export declare function checkExecution(policy: ExecutionPolicy | undefined, action: ExecutionAction): Promise; export declare function applyExecutionDecision(action: ExecutionAction, decision: ExecutionDecision): ExecutionAction; export declare function assertExecutionAllowed(policy: ExecutionPolicy | undefined, action: ExecutionAction): Promise;