/**
 * Filesystem and process primitives shared by the file lock and its stale-lock
 * reclaim capability.
 *
 * Extracted verbatim from `learnings-lock.ts` so the reclaim capability
 * (`learnings-lock-capability.ts`) can reuse the exact same probes the lock
 * itself uses. A second, subtly different copy of "is this process alive" or
 * "is an absent file an error" is precisely how a lock grows a hole.
 * @module core/learnings-lock-fs
 */
import { lstat } from "node:fs/promises";
/**
 * Read file metadata without treating an absent path as an error.
 * @param filePath - Filesystem path
 * @returns File metadata or undefined
 */
export declare function statFile(filePath: string): Promise<Awaited<ReturnType<typeof lstat>> | undefined>;
/**
 * Remove one path without recursive deletion.
 * @param filePath - Regular file or hard-link path
 */
export declare function removeFileIfPresent(filePath: string): Promise<void>;
/**
 * Treat permission-denied PID probes as live and missing PIDs as dead.
 * @param pid - Declared owner process id
 * @returns Whether the process may still be alive
 */
export declare function isProcessLive(pid: number): boolean;
//# sourceMappingURL=learnings-lock-fs.d.ts.map