import type { ClaimRecord } from "./lease.js"; export type ProcessState = "alive" | "dead" | "unknown"; export type ActiveReason = "owner-alive" | "heartbeat-fresh"; export type StaleReason = "owner-dead" | "heartbeat-expired"; export type LeaseDecision = { readonly status: "active"; readonly reason: ActiveReason; } | { readonly status: "stale"; readonly reason: StaleReason; }; export type CorruptDecision = { readonly status: "blocked"; readonly ageMs: number; } | { readonly status: "reclaimable"; readonly ageMs: number; }; export type ReclaimReason = StaleReason | "corrupt-grace-expired"; export type AcquireResult = { readonly status: "acquired" | "reentered"; readonly canonicalPath: string; readonly record: ClaimRecord; } | { readonly status: "reclaimed"; readonly canonicalPath: string; readonly reason: ReclaimReason; readonly record: ClaimRecord; } | { readonly status: "conflict"; readonly canonicalPath: string; readonly reason: ActiveReason; readonly existing: ClaimRecord; } | { readonly status: "blocked-corrupt"; readonly canonicalPath: string; readonly claimId: string; readonly observedAt: number; }; export type ClaimStatus = { readonly kind: "claim"; readonly claimId: string; readonly record: ClaimRecord; readonly lease: LeaseDecision; } | { readonly kind: "corrupt"; readonly claimId: string; readonly observedAt: number; readonly lease: CorruptDecision; }; export type PathStatus = { readonly status: "unclaimed"; readonly canonicalPath: string; } | { readonly status: "claimed"; readonly canonicalPath: string; readonly claimId: string; readonly record: ClaimRecord; readonly lease: LeaseDecision; } | { readonly status: "corrupt"; readonly canonicalPath: string; readonly claimId: string; readonly observedAt: number; readonly lease: CorruptDecision; }; //# sourceMappingURL=decision.d.ts.map