import type { ClaimedTask } from '../types'; export interface ClaimedTaskRef { host: string; id: string; claimedEpoch: number; } export interface ClaimDueTasksBatch { host: string; taskTypes: string[]; lookaheadMs: number; leaseMs: number; batchSize: number; } export interface ExecutorTaskStore { claimDueTasks(batch: ClaimDueTasksBatch): Promise; beginDispatch(claim: ClaimedTaskRef, leaseMs: number): Promise; markDispatched(claim: ClaimedTaskRef): Promise; completeTask(claim: ClaimedTaskRef): Promise; failTaskTerminal(claim: ClaimedTaskRef, errorMessage: string): Promise; rescheduleTask(claim: ClaimedTaskRef, backoffMs: number, errorMessage: string): Promise; releaseClaim(claim: ClaimedTaskRef): Promise; }