export interface ShellResult {
    stdout: string;
    stderr: string;
    exitCode: number;
    failed: boolean;
}
export interface StreamingShellOptions {
    cwd?: string;
    env?: Record<string, string>;
    timeout?: number;
    maxBuffer?: number;
    stdio?: "pipe" | "inherit";
    logPath?: string;
    input?: string;
    onStdout?: (line: string, io?: StreamingShellIo) => void;
    onStderr?: (line: string, io?: StreamingShellIo) => void;
    sudo?: boolean;
    signal?: AbortSignal;
    inheritEnv?: boolean;
}
export interface StreamingShellIo {
    writeStdin(input: string): void;
    terminate(reason?: string): void;
}
export declare function runShell(command: string, args?: string[], options?: StreamingShellOptions): Promise<ShellResult>;
export declare function runShellStreaming(command: string, args?: string[], options?: StreamingShellOptions): Promise<ShellResult>;
export declare function which(command: string): Promise<ShellResult>;
export declare function checkCommand(command: string): Promise<boolean>;
export declare function resolveKimiBin(env?: NodeJS.ProcessEnv | Record<string, string | undefined>): string;
export declare function getKimiVersion(): Promise<string | null>;
