import type { FencedLease, LeaseRequest } from './contract.js'; export interface FencedLeaseRequest extends LeaseRequest { workloadId: string; } export type InMemoryFenceRefusal = 'invalid-request' | 'scope-conflict' | 'stale-fence' | 'expired-fence' | 'unknown-lease'; export declare class InMemoryFenceReferenceError extends Error { readonly reason: InMemoryFenceRefusal; constructor(reason: InMemoryFenceRefusal, detail: string); } /** * Unsigned, non-durable, single-process conformance reference. * * JavaScript executes each method without an await boundary, so compare, * validate, and mutate form one atomic critical section. Distributed adapters * must provide the same semantics with a CP store. This class cannot satisfy an * enforce-mode policy decision or authorize release/external side effects. */ export declare class InMemoryFencedLeaseReference { private readonly now; /** This model is local, unsigned, and never an enforce-mode policy authority. */ readonly referenceOnly = true; private readonly leases; private readonly repositoryEpoch; constructor(now?: () => number); acquire(request: FencedLeaseRequest): FencedLease; renew(presented: FencedLease, ttlMs: number): FencedLease; release(presented: FencedLease): void; assertCurrentFence(presented: FencedLease): void; current(repositoryId?: string): FencedLease[]; private assertStoredFence; private pruneExpired; } //# sourceMappingURL=in-memory-fenced-lease-reference.d.ts.map