/** * Main AI Agent orchestrator for documentation generation */ import { AIAgentConfig, DocumentationRequest, DocumentationResponse, GenerateOptions, GenerateTextOptions, AIAgentRoleConfig, AIProvider, // Import AIProvider type here ILogger, ObservabilityMetadata } from './types'; /** * Collection of AI Agent instances for different roles. */ export interface AIAgents { planner: AIAgent; writer: AIAgent; researcher?: AIAgent; reviewer?: AIAgent; } /** * AI Agent for generating documentation from code changes */ export declare class AIAgent { private provider; private config; private retryConfig; private logger?; private role?; constructor(config: AIAgentConfig, role?: 'planner' | 'writer' | 'researcher' | 'reviewer'); /** * Create provider based on configuration */ private createProvider; /** * Generate documentation for a code change */ generateDocumentation(request: DocumentationRequest, _options?: GenerateOptions): Promise; generateBatch(items: Array<{ symbolName: string; signatureText: string; }>, prompt: string, systemPrompt: string): Promise>; /** * Generate generic text using the AI provider */ generateText(prompt: string, options?: GenerateTextOptions, metadata?: ObservabilityMetadata): Promise; /** * Validate the AI provider connection */ validateConnection(): Promise; /** * Execute a function with retry logic */ private executeWithRetry; /** * Check if an error is retryable */ private isRetryableError; /** * Delay utility for retry logic */ private delay; /** * Log debug messages */ /** * Log debug messages */ private log; /** * Get the current provider name */ getProvider(): AIProvider; /** * Get the current model ID */ getModelId(): string; /** * Get a summary of configuration */ getConfig(): { provider: AIProvider; model: string; timeout: number; }; } export declare function createAIAgentsFromEnv(globalOptions?: { debug?: boolean; timeout?: number; maxTokens?: number; temperature?: number; logger?: ILogger; }, roleConfigs?: { planner?: AIAgentRoleConfig; writer?: AIAgentRoleConfig; researcher?: AIAgentRoleConfig; reviewer?: AIAgentRoleConfig; }): AIAgents; //# sourceMappingURL=ai-agent.d.ts.map