import { GoCommandLockLostError, type GoCommandLock, type GoLockOwner } from "./go-lock-state.js"; export type { GoCommandLock }; export { GoCommandLockLostError }; export type GoLockAcquireResult = { readonly kind: "acquired"; readonly lock: GoCommandLock; } | { readonly kind: "active" | "recoverable" | "recovery-claim" | "unsafe"; }; export type GoLockRecoveryResult = { readonly kind: "active" | "changed" | "claim-contended" | "missing" | "recovered" | "unsafe"; }; export type GoLockRecoveryOptions = { readonly onAfterClaim?: () => void; readonly onBeforeClear?: () => void; readonly recoveryOwner?: GoLockOwner; }; export declare function acquireGoCommandLock(projectDir: string): GoLockAcquireResult; export declare function assertGoCommandLock(lock: GoCommandLock): void; export declare function recoverGoCommandLock(projectDir: string, options?: GoLockRecoveryOptions): GoLockRecoveryResult; export declare function releaseGoCommandLock(lock: GoCommandLock): void;