export interface ProcessTreeTarget {
    pid?: number;
    exitCode?: number | null;
    signalCode?: NodeJS.Signals | null;
    kill(signal?: NodeJS.Signals | number): boolean;
    once(event: "exit" | "close" | "error", listener: (...args: unknown[]) => void): unknown;
}
export interface TerminateProcessTreeOptions {
    graceMs?: number;
    waitMs?: number;
    signal?: NodeJS.Signals;
    forceSignal?: NodeJS.Signals;
}
export declare function shouldUseProcessGroup(): boolean;
export declare function managedChildProcessOptions(): {
    detached: boolean;
};
export declare function terminateProcessTree(target: ProcessTreeTarget, options?: TerminateProcessTreeOptions): Promise<void>;
