/** * Cross-platform process identity: hashed evidence that a pid still refers to * the process we launched, so a recycled pid can never be signalled by cleanup * or startup reconciliation. * * Evidence is a process start time only. The command line is deliberately * excluded because `sh -c "cmd"` execs into `cmd`, mutating `ps command=` * mid-run and making a live process fail its own identity check. */ export type ProcessIdentityComparison = "match" | "mismatch" | "gone" | "unknown"; /** Raw start-time evidence provider. Injected so platforms and tests differ. */ export interface ProcessIdentityProvider { readonly platform: NodeJS.Platform | "test"; /** Raw, unhashed evidence, or undefined when it cannot be read. */ capture(pid: number): string | undefined; } export declare const defaultProcessIdentityProvider: ProcessIdentityProvider; export declare class ProcessIdentityTracker { private readonly provider; private readonly now; private readonly alive; private readonly cache; constructor(provider?: ProcessIdentityProvider, now?: () => number, alive?: (pid: number | undefined) => boolean); /** Hashed identity for a pid, or undefined when evidence is unavailable. */ capture(pid: number | undefined, options?: { refresh?: boolean; }): string | undefined; /** * Compare a recorded identity against the live process. `unknown` never * authorizes signalling: evidence was unreadable, so ownership is unproven. */ compare(pid: number | undefined, expected: string | undefined): ProcessIdentityComparison; forget(pid: number | undefined): void; private prune; } /** Shared tracker used by the job manager and interactive sessions. */ export declare const processIdentityTracker: ProcessIdentityTracker; /** * Legacy-compatible helper. Windows returns undefined here because the job * manager's existing liveness contract treats an absent identity as "unproven" * and must keep behaving exactly as before this extraction. */ export declare function processIdentity(pid: number | undefined, options?: { refresh?: boolean; }): string | undefined; export declare function forgetProcessIdentity(pid: number | undefined): void;