export type TreeSignalOutcome = "sent" | "gone" | "failed"; /** POSIX detaches into its own group; Windows needs an explicit tree kill. */ export declare function supportsProcessGroups(): boolean; export declare function processAlive(pid: number | undefined): boolean; export declare function processGroupAlive(processGroupId: number | undefined): boolean; /** * Terminate a process and its descendants. POSIX signals the process group when * one is known; Windows uses `taskkill /T` because signalling the shell pid * leaves the real workload (servers, scanners) holding ports and CPU. */ export declare function terminateProcessTree(pid: number, options: { signal: NodeJS.Signals; processGroupId?: number | undefined; }): TreeSignalOutcome; /** Best-effort synchronous-looking descendant check used by tests/diagnostics. */ export declare function hasLiveDescendants(pid: number): Promise;