/**
 * Process-tree kill registry.
 *
 * The framework spawns the Claude Code CLI, which in turn spawns a deep subtree
 * (node workers, ripgrep, bash tool calls, MCP servers). Signaling only the
 * top-level `claude` orphans that subtree: it reparents to init and keeps
 * burning CPU — the runaway-process leak we hit (a swarm of stray `claude`
 * processes after an agent was interrupted).
 *
 * Fix: spawn each long-lived child as its own process-group leader (`detached`)
 * and signal the whole group at once via a negative pid. Register every live
 * child here so a hard framework exit (crash, uncaught error, process.exit)
 * still reaps the trees on the way out.
 */
/**
 * Signal an entire process group. `pid` must be a group leader (spawned
 * `detached`); the negative pid targets the group, reaping the whole subtree in
 * one shot. Never throws — a group that already exited is not an error.
 */
export declare function killTree(pid: number, signal: NodeJS.Signals): void;
/** Track a detached child so it is force-killed if the framework exits first. */
export declare function registerChild(pid: number): void;
/** Stop tracking a child that has already exited (or been killed). */
export declare function unregisterChild(pid: number): void;
//# sourceMappingURL=child-registry.d.ts.map