export type ApprovalStatus = "approved" | "denied" | "expired" | "cancelled"; export type ApprovalRequest = { approvalId: string; sessionId: string; runId: string; toolCallId: string; toolName: string; arguments: unknown; riskLevel: "low" | "medium" | "high"; }; export type ApprovalResolution = { approvalId: string; status: ApprovalStatus; }; export interface ApprovalBroker { request(input: ApprovalRequest, signal?: AbortSignal): Promise; approve(approvalId: string): ApprovalResolution; deny(approvalId: string): ApprovalResolution; cancelForSession(sessionId: string): number; cancelForRun(runId: string): number; }