import type { BrokerResponse } from "./broker"; export type OperationReserveResult = { status: "reserved"; } | { status: "replay"; response: BrokerResponse; } | { status: "in_progress"; } | { status: "conflict"; }; /** * Target-session-scoped idempotency key for a clientRef. Identical refs on * different sessions are independent, so a receipt can never replay or * conflict across sessions. */ export declare function operationReceiptKey(sessionId: string, clientRef: string): string; export declare function operationReceiptDigest(operation: string, input: Record, sessionId?: string): string; export declare class OperationReceiptLedger { #private; constructor(agentDir: string); open(): Promise; reserve(clientRef: string, digest: string): Promise; complete(clientRef: string, digest: string, response: BrokerResponse): Promise; }