import { type ChildProcess } from "child_process"; import type { Result } from "@fjall/generator"; import type { CdkOptions, CdkOutput } from "./CdkService.js"; import { type CdkArgumentBuilder } from "./CdkArgumentBuilder.js"; export declare class CdkProcessManager { private runningProcesses; private processCounter; private argBuilder; private readonly abortSignal?; private exitHandler; private sigintHandler; private sigtermHandler; /** * @param abortSignal When provided, the CALLER owns cancellation: spawned CDK * children are wired to this signal (`{ signal }`), and the process-global * SIGINT/SIGTERM handlers stand down (no `process.exit`) so the caller's * abort flow can issue `CancelUpdateStack` and exit gracefully. Without it, * the legacy fallback (clean up children, then `process.exit`) is preserved * for callers that do not manage their own cancellation. */ constructor(argBuilder: CdkArgumentBuilder, abortSignal?: AbortSignal); forceKillProcess(child: ChildProcess): void; cleanup(): void; dispose(): void; runCdkCommandPassthrough(workingDir: string, args: string[], options?: CdkOptions & { ignoreExitCode?: boolean; }): Promise>; runCdkCommand(workingDir: string, args: string[], options?: CdkOptions & { ignoreExitCode?: boolean; skipProjectCheck?: boolean; extraEnv?: Record; combineOutput?: boolean; }): Promise>; }