import type { AcquireResult, ClaimStatus, PathStatus } from "../domain/decision.js"; import type { LeasePolicy } from "../domain/lease-policy.js"; import { type ClaimOwner } from "../domain/owner.js"; import type { ClaimStore, Clock, PathCanonicalizer, ProcessProbe } from "./ports.js"; export interface CollisionGuardDependencies { readonly claimStore: ClaimStore; readonly leasePolicy: LeasePolicy; readonly clock: Clock; readonly processProbe: ProcessProbe; readonly pathCanonicalizer: PathCanonicalizer; } export interface PathRequest { readonly path: string; readonly cwd: string; } export interface AcquireRequest extends PathRequest { readonly owner: ClaimOwner; } export interface HeartbeatResult { readonly updated: number; readonly lost: number; } export interface ReleaseResult { readonly released: number; } export declare class CollisionGuard { #private; constructor(dependencies: CollisionGuardDependencies); acquire(request: AcquireRequest): Promise; heartbeat(owner: ClaimOwner): Promise; releaseOwner(owner: ClaimOwner): Promise; forceRelease(request: PathRequest): Promise; list(): Promise; status(request: PathRequest): Promise; } //# sourceMappingURL=collision-guard.d.ts.map