import type { NativeProjectPaths } from './native-types.js'; export interface NativeLockOwner { id: string; pid: number; hostname: string; createdAt: string; operation: string; } export interface NativeLockFileIdentity { device: string; inode: string; size: string; birthtimeNs: string; ctimeNs: string; mtimeNs: string; } export interface NativeLock { file: string; nativeRoot: string; locksDir: string; owner: NativeLockOwner; identity: NativeLockFileIdentity; } export interface NativeLockDiagnosis { status: 'missing' | 'active' | 'stale' | 'unknown'; owner: NativeLockOwner | null; identity: NativeLockFileIdentity | null; } export type NativeStaleLockTakeover = { status: 'removed'; owner: NativeLockOwner; } | { status: 'missing'; } | { status: 'changed'; diagnosis: NativeLockDiagnosis; }; type NativeLockCoordinatorPaths = Pick; export declare function readNativeLock(file: string): Promise; export declare function withNativeLockRecovery(pathEntries: readonly NativeLockCoordinatorPaths[], operation: string, work: () => Promise): Promise; export declare function acquireNativeLock(paths: NativeProjectPaths, name: string, operation: string): Promise; export declare function releaseNativeLock(lock: NativeLock): Promise; export declare function isProcessAlive(pid: number): boolean | null; export declare function diagnoseNativeLock(file: string): Promise; export declare function takeOverNativeStaleLock(paths: NativeProjectPaths, file: string, expected?: NativeLockDiagnosis): Promise; export {}; //# sourceMappingURL=native-lock.d.ts.map