import type { CapabilityApprovalGate } from "./internal/capability-runtime.js"; import type { ApprovalConsumeResult, ApprovalRecord, ApprovalStore } from "./internal/durable-types.js"; export declare class ApprovalRequiredError extends Error { readonly approvalId: string; readonly effectId: string; readonly resumeToken: string; readonly expiresAt: number; constructor(approvalId: string, effectId: string, resumeToken: string, expiresAt: number); } export declare class ApprovalTokenInvalidError extends Error { constructor(); } export declare class ApprovalTokenExpiredError extends Error { constructor(); } export declare class ApprovalTokenReplayError extends Error { constructor(); } export declare class ApprovalBindingError extends Error { constructor(); } export declare class ApprovalPendingError extends Error { constructor(); } export declare class ApprovalDeniedError extends Error { constructor(); } export interface ApprovalCoordinator extends CapabilityApprovalGate { decide(input: { readonly approvalId: string; readonly tenantId: string; readonly decision: "approved" | "denied"; readonly decidedBy: string; }): Promise; get(approvalId: string): Promise; } export interface ApprovalCoordinatorOptions { readonly store: ApprovalStore; /** At least 32 random bytes, kept separately from the approval store. */ readonly secret: Uint8Array; readonly ttlMs?: number; readonly now?: () => number; /** Tests/local development only. Production approval records require a durable store. */ readonly allowMemoryStore?: boolean; } export declare function createApprovalCoordinator(options: ApprovalCoordinatorOptions): ApprovalCoordinator; export declare class MemoryApprovalStore implements ApprovalStore { readonly durability: "memory"; private readonly records; create(record: ApprovalRecord): boolean; get(approvalId: string): ApprovalRecord | undefined; decide(input: Parameters[0]): boolean; consume(input: Parameters[0]): ApprovalConsumeResult; list(): readonly ApprovalRecord[]; } //# sourceMappingURL=durable-approval.d.ts.map