import { execFile } from "node:child_process"; import type { ExtensionCommandContext } from "@earendil-works/pi-coding-agent"; /** * Promisified `execFile`. Use instead of declaring `promisify(execFile)` * locally in every module. * * Note: `forge-update-command.ts` deliberately keeps its own injectable * `runner` override for test isolation — do NOT migrate that module here. */ export declare const execFileAsync: typeof execFile.__promisify__; /** Convenience type alias for callers that need to annotate the signature. */ export type ExecFileAsyncType = typeof execFileAsync; /** * Invoke a Node.js tool by path and wait for it to complete. * Throws a descriptive error (including tool basename) on non-zero exit. */ export declare function runTool(toolPath: string, argv: string[], cwd: string, timeout?: number): Promise; /** * Invoke a Node.js tool in advisory mode: on failure, notify via `ctx.ui.notify` * and return `false` instead of throwing. * * Returns `true` on success, `false` on failure. Callers that need hard failure * should use `runTool` directly. */ export declare function runToolAdvisory(toolPath: string, argv: string[], cwd: string, ctx: ExtensionCommandContext, label: string, timeout?: number): Promise;