/** * External Agents - Integration adapters for external AI CLI tools */ export interface ExternalAgentConfig { name: string; command: string; args?: string[]; cwd?: string; env?: Record; timeout?: number; } export interface ExternalAgentResult { success: boolean; output: string; error?: string; exitCode: number; duration: number; } /** * Base class for external agent integrations */ export declare abstract class BaseExternalAgent { protected config: ExternalAgentConfig; constructor(config: ExternalAgentConfig); /** * Check if the external tool is available */ abstract isAvailable(): Promise; /** * Execute a prompt with the external agent */ abstract execute(prompt: string): Promise; /** * Get the agent name */ getName(): string; /** * Execute a command and return result */ protected runCommand(args: string[]): Promise; /** * Check if a command exists */ protected commandExists(command: string): Promise; } /** * Claude Code CLI integration */ export declare class ClaudeCodeAgent extends BaseExternalAgent { constructor(cwd?: string); isAvailable(): Promise; execute(prompt: string): Promise; executeWithSession(prompt: string, sessionId?: string): Promise; } /** * Gemini CLI integration */ export declare class GeminiCliAgent extends BaseExternalAgent { private model; constructor(cwd?: string, model?: string); isAvailable(): Promise; execute(prompt: string): Promise; } /** * OpenAI Codex CLI integration */ export declare class CodexCliAgent extends BaseExternalAgent { constructor(cwd?: string); isAvailable(): Promise; execute(prompt: string): Promise; } /** * Aider CLI integration */ export declare class AiderAgent extends BaseExternalAgent { constructor(cwd?: string); isAvailable(): Promise; execute(prompt: string): Promise; } /** * Generic external agent for any CLI tool */ export declare class GenericExternalAgent extends BaseExternalAgent { private promptArg; constructor(config: ExternalAgentConfig & { promptArg?: string; }); isAvailable(): Promise; execute(prompt: string): Promise; } /** * External Agent Registry */ declare class ExternalAgentRegistry { private agents; constructor(); register(name: string, factory: () => BaseExternalAgent): void; get(name: string): BaseExternalAgent | undefined; list(): string[]; getAvailable(): Promise; } export declare function getExternalAgentRegistry(): ExternalAgentRegistry; /** * Create an external agent by name */ export declare function createExternalAgent(name: string, cwd?: string): BaseExternalAgent | undefined; /** * Convert external agent to tool for use with PraisonAI agents */ export declare function externalAgentAsTool(agent: BaseExternalAgent): { name: string; description: string; execute: (input: string) => Promise; }; export {};