/**
 * Command runner service.
 *
 * Executes shell commands in a project directory using execa with
 * streaming output, timeout enforcement, and output size truncation.
 */
export interface CommandOutputCallback {
    (event: {
        stdoutChunk?: string;
        stderrChunk?: string;
    }): void;
}
export interface CommandResult {
    exitCode: number | null;
    signal?: string;
    durationMs: number;
    truncated: boolean;
    outputPreview: string;
}
/**
 * Execute a command in the given project directory.
 *
 * Streams stdout/stderr chunks via the onOutput callback.
 * Returns the final result with exit code, signal, duration, and truncation info.
 */
export declare function executeCommand(requestId: string, projectId: string, command: string, cwd: string, onOutput: CommandOutputCallback): Promise<CommandResult>;
/**
 * Cancel a running command by requestId.
 * Sends SIGTERM to the process.
 *
 * @returns true if the command was found and killed, false if not found
 */
export declare function cancelCommand(requestId: string): boolean;
/**
 * Check if a command is currently running.
 */
export declare function isCommandRunning(requestId: string): boolean;
/**
 * Get the count of running commands for a specific project.
 */
export declare function getRunningCommandCount(projectId: string): number;
/**
 * Kill all running commands (used during shutdown).
 */
export declare function killAllCommands(): void;
//# sourceMappingURL=command-runner.d.ts.map