import { spawn } from "node:child_process"; type ShellCommandDeps = { spawn: typeof spawn; waitForReturnToPix: () => Promise; }; export declare function setShellCommandTestDeps(overrides: Partial): () => void; export type InteractiveShellCommandResult = { exitCode: number | null; signal: NodeJS.Signals | null; error?: string; }; export type BangShellCommand = { command: string; interactive: boolean; }; export type ChatShellCommandStream = "stdout" | "stderr"; export type ChatShellCommandHandlers = { onOutput?: (chunk: string, stream: ChatShellCommandStream) => void; onSettled?: (result: InteractiveShellCommandResult) => void; }; export type RunningChatShellCommand = { pid?: number; done: Promise; writeInput(input: string): boolean; interrupt(): boolean; kill(signal?: NodeJS.Signals): boolean; endInput(): void; }; export declare function bangShellCommandFromInput(text: string): BangShellCommand | undefined; export declare function shellCommandFromBangInput(text: string): string | undefined; export declare function runChatShellCommand(command: string, cwd: string, handlers?: ChatShellCommandHandlers): RunningChatShellCommand; export declare function runInteractiveShellCommand(command: string, cwd: string): Promise; export declare function formatShellCommandEntry(command: string, result: InteractiveShellCommandResult, prefix?: string): string; export {};