import type { MeshIdentity, MeshStore } from "../mesh/store.js"; type DurableWorkflowStatus = "queued" | "running" | "completed" | "partial" | "failed" | "cancelled"; type DurableWorkflowPhaseStatus = "pending" | "ready" | "running" | "completed" | "failed" | "cancelled"; export interface DurableWorkflowEvidenceRef { kind: "command" | "artifact" | "trace" | "custom"; ref: string; digest?: string; } interface DurableWorkflowPhaseDefinition { id: string; deps?: string[]; objective?: string; maxAttempts?: number; } export interface DurableWorkflowDefinition { id: string; name: string; phases: DurableWorkflowPhaseDefinition[]; leaseMs?: number; } interface DurableWorkflowPhase { id: string; deps: string[]; objectiveDigest?: string; maxAttempts: number; status: DurableWorkflowPhaseStatus; attempt: number; ownerRunId?: string; ownerTraceId?: string; ownerSpanId?: string; leaseToken?: string; leaseExpiresAt?: number; evidence?: DurableWorkflowEvidenceRef[]; outputDigest?: string; error?: string; startedAt?: number; finishedAt?: number; } export interface DurableWorkflowRecord { format: 1; id: string; name: string; definitionDigest: string; status: DurableWorkflowStatus; leaseMs: number; phases: DurableWorkflowPhase[]; createdAt: number; updatedAt: number; cancelledAt?: number; cancelReason?: string; } export interface DurableWorkflowClaim { workflowId: string; leaseToken: string; leaseExpiresAt: number; phase: DurableWorkflowPhase; } export declare class DurableWorkflowStore { #private; readonly mesh: MeshStore; readonly identity: MeshIdentity; constructor(mesh: MeshStore, identity: MeshIdentity, options?: { now?: () => number; nextId?: () => string; }); create(definition: DurableWorkflowDefinition): Promise; status(id: string): Promise; list(limit?: number): Promise; claim(id: string, input: { ownerRunId: string; ownerTraceId?: string; ownerSpanId?: string; phaseId?: string; }): Promise; resume(id: string): Promise; fail(id: string, input: { phaseId: string; leaseToken: string; error: string; retryable?: boolean; }): Promise; cancel(id: string, reason?: string): Promise; complete(id: string, input: { phaseId: string; leaseToken: string; evidence?: DurableWorkflowEvidenceRef[]; output?: unknown; }): Promise; } export {}; //# sourceMappingURL=durable.d.ts.map