/** * In-memory reference implementation of {@link AgentSubmissionStore}. * * Suitable for the inline runtime, dev, and tests. Single-threaded JS makes * every compare-and-set trivially atomic, but the observable gating * conditions — runnable-head FIFO per session, owner checks, first-terminal- * wins, idempotent admission with payload-conflict detection — match the * durable backends exactly so the contract suite passes unchanged. */ import type { AgentAttemptMarker, AgentDispatchAdmission, AgentSubmission, AgentSubmissionInput, AgentSubmissionStore, SubmissionAttemptRef, SubmissionClaimRef, AgentSubmissionDurability, SubmissionSettledRecord, SubmissionSettlementObligation } from './submission-store.js'; import type { DispatchInput } from './dispatch.js'; export declare class InMemorySubmissionStore implements AgentSubmissionStore { private nextSequence; private readonly submissions; private readonly dispatchReceipts; private readonly attemptMarkers; private readonly obligations; getSubmission(submissionId: string): Promise; hasUnsettledSubmissions(): Promise; listRunnableSubmissions(): Promise; listUnreadySubmissions(): Promise; listRunningSubmissions(): Promise; listPendingSubmissionSettlements(): Promise; replaceSubmissionAttempt(attempt: SubmissionAttemptRef, nextAttemptId: string, lease?: { ownerId: string; leaseExpiresAt: number; }): Promise; admitDispatch(input: DispatchInput): Promise; admitDirect(input: AgentSubmissionInput): Promise; markSubmissionCanonicalReady(submissionId: string): Promise; claimSubmission(claim: SubmissionClaimRef): Promise; markSubmissionInputApplied(attempt: SubmissionAttemptRef, durability?: AgentSubmissionDurability): Promise; requestSubmissionRecovery(attempt: SubmissionAttemptRef): Promise; requestSessionAbort(storeSessionId: string): Promise; requeueSubmissionBeforeInputApplied(attempt: SubmissionAttemptRef): Promise; reserveSubmissionSettlement(attempt: SubmissionAttemptRef, settlement: { recordId: string; record: SubmissionSettledRecord; }): Promise; finalizeSubmissionSettlement(attempt: SubmissionAttemptRef, recordId: string): Promise; completeSubmission(attempt: SubmissionAttemptRef): Promise; failSubmission(attempt: SubmissionAttemptRef, error: unknown): Promise; claimJoinableSubmissions(host: SubmissionAttemptRef, agentName: string): Promise; finalizeJoinedSubmission(host: SubmissionAttemptRef, submissionId: string): Promise; revertJoiningSubmission(host: SubmissionAttemptRef, submissionId: string): Promise; listJoinedSubmissions(hostSubmissionId: string): Promise; settleJoinedSubmission(host: SubmissionAttemptRef, submissionId: string, outcome: 'completed' | 'failed' | 'aborted', error?: unknown): Promise; insertAttemptMarker(attempt: SubmissionAttemptRef): Promise; deleteAttemptMarker(attempt: SubmissionAttemptRef): Promise; listAttemptMarkers(): Promise; deleteSessionSubmissions(storeSessionId: string): Promise; renewLeases(ownerId: string, submissionIds: string[]): Promise; listExpiredSubmissions(): Promise; private admitSubmission; private ordered; private hasEarlierUnsettled; private ownedRunning; /** Serializable state used by durable adapters that wrap the reference semantics. */ exportPersistenceSnapshot(): unknown; importPersistenceSnapshot(snapshot: unknown): void; } //# sourceMappingURL=in-memory-submission-store.d.ts.map