import { type ClaudeStructuredPaneAdapter, type ClaudeStructuredPaneObservation } from "./claude-structured-pane.js"; import { type ClaudeStructuredEvidenceSchema, type ClaudeStructuredRequest, type ClaudeStructuredResult, type ClaudeStructuredRoleId } from "./claude-structured-store.js"; import { type ProcessRunner } from "./process.js"; export interface PrepareClaudeStructuredRoleOptions { readonly requestId: string; readonly roleId: ClaudeStructuredRoleId; readonly evidenceSchema: ClaudeStructuredEvidenceSchema; readonly input: Readonly>; } export interface PreparedClaudeStructuredRole { readonly status: "created" | "replayed"; readonly request: ClaudeStructuredRequest; } export type ClaudeStructuredRoleProgress = Readonly<{ status: "launched" | "waiting"; request: ClaudeStructuredRequest; observation: ClaudeStructuredPaneObservation; result?: never; reason?: never; }> | Readonly<{ status: "complete"; request: ClaudeStructuredRequest; result: ClaudeStructuredResult; observation?: never; reason?: never; }> | Readonly<{ status: "blocked"; request: ClaudeStructuredRequest; reason: string; observation?: ClaudeStructuredPaneObservation; result?: never; }>; export interface ClaudeStructuredRoleTransport { prepare(options: PrepareClaudeStructuredRoleOptions): PreparedClaudeStructuredRole; advance(prepared: PreparedClaudeStructuredRole): ClaudeStructuredRoleProgress; read(requestId: string, expected?: Omit): ClaudeStructuredRoleProgress; /** Write immutable completion receipt after store.submitResult (bound path). */ recordCompletionAfterSubmit(requestId: string): void; } export interface ClaudeStructuredResultIdentity { readonly request_id: string; readonly role_id: ClaudeStructuredRoleId; readonly fresh_session_id: string; readonly certifying: boolean; readonly engine: "claude"; readonly model_id: string; readonly schema_id: ClaudeStructuredEvidenceSchema; readonly evidence_digest: string; readonly output_digest: string; readonly launch_operation_id: string; readonly launch_identity_digest: string; } export interface ClaudeLaunchProvenance { readonly schema_version: 1; readonly request_id: string; readonly role_id: string; readonly engine: "claude"; readonly model_id: string; readonly schema_id: string; readonly schema_digest: string; readonly policy_digest: string; readonly evidence_digest: string; readonly prompt_digest: string; readonly workspace_root: string; readonly claude_session_id: string; readonly launch_operation_id: string; readonly launch_identity_digest: string; readonly pane_id: string; readonly process_id: number; } export interface ClaudeCompletionReceipt { readonly schema_version: 1; readonly request_id: string; readonly role_id: string; readonly engine: "claude"; readonly model_id: string; readonly schema_id: string; readonly schema_digest: string; readonly policy_digest: string; readonly evidence_digest: string; readonly prompt_digest: string; readonly workspace_root: string; readonly claude_session_id: string; readonly launch_operation_id: string; readonly launch_identity_digest: string; readonly pane_id: string; readonly process_id: number; readonly output_path: string; readonly output_digest: string; readonly process_success: true; readonly certifying: true; } /** * Shared bound-submit helper: write immutable completion receipt after launch * provenance + durable result exist. Transport and bridge must use this. */ export declare function recordClaudeStructuredCompletionReceipt(options: { readonly packageRoot: string; readonly stateRoot: string; readonly requestId: string; /** Caller-known workspace — required; never fall back to stored launch.workspace_root. */ readonly workspaceRoot: string; }): void; export declare function createClaudeStructuredRoleTransport(options: { readonly packageRoot: string; readonly configRoot?: string; readonly workspaceRoot: string; readonly stateRoot: string; readonly executablePath: string; readonly env?: NodeJS.ProcessEnv; readonly runner?: ProcessRunner; readonly panes?: ClaudeStructuredPaneAdapter; readonly clock?: () => string; readonly sessionIdFactory?: () => string; }): ClaudeStructuredRoleTransport; export declare function claudeStructuredResultIdentity(value: unknown): ClaudeStructuredResultIdentity;