import { CodeChunk, AIConfig, DocumentationSection, DocType } from '../../types'; import { AIProvider } from './providers'; interface SummarizationRequest { chunks: CodeChunk[]; context?: string; docType: DocType; maxTokens?: number; } interface SummarizationResult { summary: string; sections: DocumentationSection[]; tokens: number; } export declare class AIService { private readonly providerManager; private readonly config; private readonly errorHandler; private tokenCount; private isInitialized; constructor(config?: AIConfig); private validateAndNormalizeConfig; private buildManagerConfig; private initializeAsync; private ensureInitialized; summarizeChunks(request: SummarizationRequest): Promise; private validateSummarizationRequest; private getSystemPrompt; private buildPrompt; private parseResponse; private extractSections; private generateSectionId; generateCommitMessage(changes: string[]): Promise; generateDiagram(chunks: CodeChunk[], diagramType: 'flow' | 'sequence' | 'class' | 'er'): Promise; generateFunctionFlowDiagram(chunks: CodeChunk[], entryPoint?: string): Promise; private sanitizeMermaidLabel; private extractFunctionCalls; private isCommonKeyword; getTokenCount(): number; resetTokenCount(): void; switchProvider(provider: AIProvider): Promise; getAvailableProviders(): Promise; getAvailableModels(provider?: AIProvider): Promise; analyzeCode(code: string, language: string, analysisType: 'summary' | 'review' | 'documentation' | 'complexity' | 'security'): Promise; } export {}; //# sourceMappingURL=index.d.ts.map