/**
 * Best-effort process-tree termination with graceful shutdown.
 * - Windows: use taskkill /T to include descendants. Sends SIGTERM-equivalent
 *   first (without /F), then force-kills if process survives.
 * - Unix: send SIGTERM to process group first, wait grace period, then SIGKILL.
 *   When `detached: false`, skips group kill and targets the pid directly
 *   (useful for processes that don't own a process group).
 *
 * This gives child processes a chance to clean up (close connections, remove
 * temp files, terminate their own children) before being hard-killed.
 */
export declare function killProcessTree(pid: number, opts?: {
    graceMs?: number;
    detached?: boolean;
}): void;
