/** * Process-scoped promote mutex — one lane promotion at a time per repo. */ export interface PromoteLockRecord { pid: number; laneId: string; acquiredAt: string; hostname?: string; } /** * Acquire the repo-wide promote lock. Throws if another live promote holds it. */ export declare function acquirePromoteLock(trellisDir: string, laneId: string, opts?: { staleMs?: number; force?: boolean; }): void; /** Release the promote lock when owned by this process and lane. */ export declare function releasePromoteLock(trellisDir: string, laneId: string): void; /** Best-effort lock status for CLI / hooks. */ export declare function getPromoteLockStatus(trellisDir: string, staleMs?: number): { locked: boolean; record?: PromoteLockRecord; stale?: boolean; }; /** Remove a stale or abandoned promote lock file. */ export declare function clearPromoteLock(trellisDir: string): boolean; //# sourceMappingURL=promote-lock.d.ts.map