import type { AreaId, CanonicalPath } from "./sync-work.js"; export type PathLeaseRequest = { targetUid: string; areaId: AreaId; canonicalPath: CanonicalPath; mode: "mutation"; }; export type PathLeaseSnapshot = PathLeaseRequest & { owner: string; }; export declare function assertCanonicalPath(path: CanonicalPath): void; export declare function pathsConflict(left: CanonicalPath, right: CanonicalPath): boolean; /** * Parent-owned mutation claims. Acquisition is intentionally synchronous and * all-or-none: callers either own every path in a slice or none of them. */ export declare class PathLeaseManager { private readonly held; private nextLeaseId; tryAcquire(owner: string, requested: readonly PathLeaseRequest[]): PathLease | undefined; inspect(): readonly PathLeaseSnapshot[]; release(ids: readonly string[]): void; } export declare class PathLease { private readonly manager; private readonly ids; private released; constructor(manager: PathLeaseManager, ids: readonly string[]); release(): void; } //# sourceMappingURL=path-leases.d.ts.map