export interface TreeKillTarget {
    pid?: number;
    exitCode?: number | null;
    signalCode?: NodeJS.Signals | null;
    kill(signal?: NodeJS.Signals | number): boolean;
    once?(event: "exit", listener: () => void): unknown;
}
interface TerminateWithTreeKillOptions {
    gracefulSignal?: NodeJS.Signals;
    forceSignal?: NodeJS.Signals;
    gracefulTimeoutMs: number;
    forceTimeoutMs?: number;
    onForceSignal?: () => void;
}
export type TerminateWithTreeKillResult = "already-exited" | "terminated" | "killed" | "kill-timeout";
export declare function terminateWithTreeKill(child: TreeKillTarget, options: TerminateWithTreeKillOptions): Promise<TerminateWithTreeKillResult>;
export {};
//# sourceMappingURL=tree-kill.d.ts.map