import { type McpMutationReceiptType } from "@opengeni/contracts"; export type McpMutationReceiptInput = Omit & { timestamp?: string; warnings?: string[]; }; /** * Build and validate a compact first-party MCP mutation receipt at the API * boundary. Contract parsing is intentional: it prevents a handler from * accidentally adding an unbounded entity or a copy of request fields. */ export declare function mcpMutationReceipt(input: McpMutationReceiptInput): McpMutationReceiptType; export declare function sessionControlMutationReceipt(input: { operation: "session_pause" | "session_resume"; sessionId: string; state: string; receiptId: string; timestamp: string; outcome: "changed" | "unchanged" | "replayed"; interruptionCount: number; }): McpMutationReceiptType; export type SessionCreateReceiptResult = { session: { id: string; queueVersion: number; status: string; sandboxGroupId: string; parentSessionId: string | null; rootSessionId: string; nestedAgentDepth: number; effectiveMaxNestedAgentDepth: number; }; outcome: "created" | "repaired" | "replayed"; changed: boolean; usageRecording: "recorded" | "failed"; }; /** Project committed session-create truth without copying request fields. */ export declare function sessionCreateMutationReceipt(result: SessionCreateReceiptResult, idempotencyKeyRequested: boolean): McpMutationReceiptType;