import type { RunExecutionStore, CreateAttemptInput, ClaimAttemptInput, LaunchIntentResult } from "../sdk/execution/storage.js"; import type { FrozenAdmission, ExecutionRunRow, AttemptRecord, AttemptReceipt, RunTransitionRecord, ExecutionRunStatus, TerminalRunStatus, ClaimResult } from "../sdk/execution/types.js"; export interface RuntimeArtifact { name: string; contentType: string; base64: string; sha256: string; byteSize: number; } export interface RuntimeResult { exitCode: number; stdout: string; stderr: string; artifacts: RuntimeArtifact[]; error?: string; } export interface RuntimeJob { execution: ExecutionRunRow; attempts: AttemptRecord[]; receipts: AttemptReceipt[]; transitions: RunTransitionRecord[]; input?: { content: string; title?: string; } | { pattern: string; text: string; flags: string; }; bundleBase64?: string; result?: RuntimeResult; } /** Each mutation locks the complete execution aggregate. Cross-process claims, * cancellation and receipts cannot interleave within one run. No process-local queue. */ export declare class RuntimeExecutionStore implements RunExecutionStore { private sqlite?; private postgres?; readonly durable: boolean; private constructor(); static open(databaseUrl?: string): Promise; close(): Promise; job(runId: string): Promise; mutate(id: string, fn: (job: RuntimeJob) => T): Promise; admit(admission: FrozenAdmission): Promise; activeJobs(limit?: number): Promise; getRun(id: string): Promise; getRunByKey(tenant: string, key: string): Promise; getRunByDigests(input: { tenantId: string; skillId: string; skillVersion: string; bundleDigest: string; inputDigest: string; }): Promise; listAttempts(id: string): Promise; createAttempt(input: CreateAttemptInput): Promise; claimAttempt(input: ClaimAttemptInput): Promise; recordLaunchIntent(input: { runId: string; attemptId: string; clientToken: string; requestDigest: string; startedBy: string; }): Promise; recordLaunchState(input: { runId: string; attemptId: string; launchState: AttemptRecord["launchState"]; taskId?: string | null; }): Promise; recordTransition(t: RunTransitionRecord): Promise; markAttemptTerminal(id: string, attemptId: string): Promise; writeReceipt(receipt: AttemptReceipt): Promise; getReceipt(id: string, attempt: string): Promise; finalizeRun(id: string, status: TerminalRunStatus, receiptId: string): Promise; setRunStatus(id: string, status: ExecutionRunStatus): Promise; }