import { GenerationRequest, GenerationResult, CodePattern } from '../types'; import { ProjectAnalyzer } from './project-analyzer'; import { MemoryManager } from './memory-manager'; import { ToolOrchestrator } from './tool-orchestrator'; export interface ContextualGenerationOptions { includeProjectPatterns?: boolean; learnFromExisting?: boolean; maintainConsistency?: boolean; generateTests?: boolean; generateDocs?: boolean; optimizeForPerformance?: boolean; followSecurityBestPractices?: boolean; useExistingDependencies?: boolean; matchProjectStyle?: boolean; integrateWithExistingCode?: boolean; } export interface CodeGenerationContext { projectRoot: string; currentFile?: string; relatedFiles: string[]; existingPatterns: CodePattern[]; projectDependencies: string[]; codeStyle: { indentation: string; quotes: 'single' | 'double'; semicolons: boolean; trailingCommas: boolean; namingConvention: 'camelCase' | 'snake_case' | 'kebab-case' | 'PascalCase'; }; architecture: { patterns: string[]; structure: Record; conventions: Record; }; qualityMetrics: { complexityThreshold: number; testCoverage: number; maintainabilityIndex: number; }; } export interface GenerationAnalytics { generationTime: number; contextAnalysisTime: number; patternMatchingTime: number; validationTime: number; linesGenerated: number; functionsGenerated: number; testsGenerated: number; dependenciesAdded: number; qualityScore: number; consistencyScore: number; } export declare class CodeGenerator { private logger; private agent; private projectAnalyzer; private memoryManager; private toolOrchestrator; private astAnalyzer; private generationCache; private patternLibrary; private styleRegistry; constructor(projectAnalyzer?: ProjectAnalyzer, memoryManager?: MemoryManager, toolOrchestrator?: ToolOrchestrator); generate(request: GenerationRequest, options?: ContextualGenerationOptions): Promise; generateWithContext(description: string, projectPath: string, options?: ContextualGenerationOptions): Promise; private validateRequest; private getEnhancedSystemPrompt; private buildContextualPrompt; private parseContextualResult; private validateEnhancedGenerationResult; private buildGenerationContext; private findRelevantPatterns; private isPatternRelevant; private extractCodeStyle; private inferStyleFromCode; private getFilePattern; private findRelatedFiles; private extractArchitecturePatterns; private extractQualityMetrics; private generateContextualFilename; private toCamelCase; private toPascalCase; private generateFilename; private generateBasicTest; private analyzeProjectContext; private extractPatterns; private extractPatternsFromCode; private validateContextualCode; private validateNamingConventions; private validateDependencyUsage; private validateStyleConsistency; private validateCode; private suggestContextualImprovements; private generateContextualTests; private extractTestableElements; private generateJavaScriptTests; private generateFunctionTest; private generateClassTest; private generatePythonTests; private generatePythonFunctionTest; private generatePythonClassTest; private optimizeForProject; private suggestImprovements; private initializePatternLibrary; private generateCacheKey; private countFunctions; private calculateQualityScore; private calculateConsistencyScore; private isCodeSimilarToPattern; private codeFollowsStyle; private followsNamingConvention; private calculateCodeComplexity; private storeGenerationForLearning; private inferProjectType; private inferGenerationType; private inferCodeStyle; private enhanceGenerationResult; private generateIntegrationNotes; private identifyRefactoringOpportunities; private calculateMaintainabilityScore; private calculateTestabilityScore; private calculateSecurityScore; } //# sourceMappingURL=code-generator.d.ts.map