export type ReleaseRefreshLease = () => void; export interface RefreshLeaseOptions { /** Internal test seam. Production uses process.kill(pid, 0). */ isProcessAlive?: (pid: number) => boolean; /** Internal test seam for retry timing. */ retryMinMs?: number; /** Internal test seam for retry timing. */ retryMaxMs?: number; /** Stops an asynchronous lease wait when its watcher is shutting down. */ signal?: AbortSignal; } export declare function tryAcquireRefreshLease(outputDir: string, options?: RefreshLeaseOptions): ReleaseRefreshLease | null; export declare function acquireRefreshLease(outputDir: string, options?: RefreshLeaseOptions & { timeoutMs?: number; }): ReleaseRefreshLease; /** * Waits for the active refresh owner without imposing a terminal contention * timeout. The caller's AbortSignal remains the bounded shutdown mechanism. */ export declare function acquireRefreshLeaseWithoutBlocking(outputDir: string, options?: RefreshLeaseOptions): Promise;