import type { ChildProcess } from "node:child_process"; export type ProcessRunOptions = Readonly<{ cwd?: string; env?: NodeJS.ProcessEnv; stdio?: "inherit" | "pipe" | "ignore" | ReadonlyArray<"inherit" | "pipe" | "ignore">; detached?: boolean; windowsHide?: boolean; }>; export type ProcessRunResult = Readonly<{ exitCode: number | null; }>; export interface ProcessRunner { spawn(command: string, args: ReadonlyArray, options?: ProcessRunOptions): ChildProcess; runSync(command: string, args: ReadonlyArray, options?: ProcessRunOptions): ProcessRunResult; }