import type { ActiveProject, RemoteRiskLevel } from './protocol.js'; export interface ApprovalRequestInput { approvalId: string; userId: string; sessionId: string; toolName: string; riskLevel: RemoteRiskLevel; inputHash: string; actionSummary: string; activeProject?: ActiveProject; expiresAt: Date; } export type ApprovalDecision = 'approved' | 'rejected' | 'timeout'; export interface ApprovalRecord extends ApprovalRequestInput { decision?: ApprovalDecision; decidedAt?: Date; } export declare function requiresApproval(riskLevel: RemoteRiskLevel): boolean; export declare function isDestructiveRisk(riskLevel: RemoteRiskLevel): boolean; export declare class ApprovalStore { private readonly approvals; request(input: ApprovalRequestInput): ApprovalRecord; resolve(approvalId: string, decision: ApprovalDecision, now?: Date): ApprovalRecord | undefined; consumeApproved(input: { approvalId: string; userId: string; sessionId: string; toolName: string; inputHash: string; now?: Date; }): boolean; get(approvalId: string): ApprovalRecord | undefined; findPending(input: { userId: string; sessionId: string; toolName: string; inputHash: string; now?: Date; }): ApprovalRecord | undefined; delete(approvalId: string): boolean; deleteForSession(sessionId: string): number; }