import type { AcceptanceTaskIdentity, TaskAcceptanceContract, TaskVerificationReceipt } from '@dsh-enhanced/task-acceptance-contract'; export declare class AcceptanceStoreError extends Error { readonly code: 'invalid-input' | 'conflict' | 'corrupt'; constructor(code: 'invalid-input' | 'conflict' | 'corrupt', message: string); } export type ExecutionStatus = 'succeeded' | 'failed' | 'timed-out' | 'cancelled' | 'unknown'; export interface Execution { readonly status: ExecutionStatus; readonly quiescent: boolean; readonly completedAt: number; readonly executionRef: string; } export interface AcceptanceState { readonly state: 'awaiting-execution' | 'pending' | 'verifying' | 'done' | 'needs-attention'; readonly attempts: number; readonly reason: string | null; readonly receipt: TaskVerificationReceipt | null; readonly execution: Execution | null; } export interface AttentionState extends AcceptanceState { readonly contract: TaskAcceptanceContract; } export interface ClaimedVerification { readonly contract: TaskAcceptanceContract; readonly job: Readonly<{ contractId: string; attempt: number; fencingToken: number; workerId: string; leaseUntil: number; }>; readonly execution: Execution; } export declare class AcceptanceStore { #private; constructor(path: string); close(): void; accept(input: TaskAcceptanceContract): TaskAcceptanceContract; getContract(id: string): TaskAcceptanceContract | null; getTaskContract(identity: { scope: { workspace: string; preset: string; }; owner: { principalRecordId: string; principalVersion: number; }; task: AcceptanceTaskIdentity; }): TaskAcceptanceContract | null; markExecutionFinished(contractId: string, input: Execution): void; claimDue(input: { workerId: string; now: number; leaseMs: number; }): ClaimedVerification | null; finish(input: { contractId: string; workerId: string; fencingToken: number; now: number; receipt: TaskVerificationReceipt | null; reason: string; retryAt?: number; }): void; getState(contractId: string): AcceptanceState | null; counts(now: number): Readonly<{ awaitingExecution: number; pendingVerification: number; pendingReceipts: number; expiredReceipts: number; needsAttention: number; }>; awaitingExecution(limit?: number, afterId?: string): readonly TaskAcceptanceContract[]; /** Bounds recovery work while making missing terminal execution evidence actionable. */ expireAwaiting(now: number): number; listAttention(limit?: number): readonly AttentionState[]; pendingReceipts(limit?: number, afterId?: string): readonly { contract: TaskAcceptanceContract; receipt: TaskVerificationReceipt; }[]; acknowledgeReceipt(receiptId: string, digest: string): void; } //# sourceMappingURL=store.d.ts.map