/** * Validation Cycle Interfaces * SOLID Principles: Interface Segregation - Separate interfaces for different validation concerns */ export interface ProjectContext { projectPath: string; changedFiles?: string[]; requestType: 'code_modification' | 'analysis' | 'general'; language?: string; framework?: string; userIntent?: string; } export interface CycleResult { success: boolean; duration: number; warnings: ValidationWarning[]; errors: ValidationError[]; recommendations: string[]; } export interface ValidationWarning { type: string; message: string; file?: string; line?: number; severity: 'info' | 'warning' | 'error'; } export interface ValidationError { type: string; message: string; file?: string; line?: number; blocking: boolean; } export interface CycleConfig { enableCoreCycle: boolean; enableQualityCycle: boolean; maxDuration: number; skipOnPatterns?: string[]; qualityThresholds: { solidMinScore: number; maxDuplicationLines: number; maxComplexityPerFunction: number; }; } export interface SafetyCheckResult { passed: boolean; issues: ValidationError[]; warnings: ValidationWarning[]; checkType: string; } export interface QualityMetrics { solidScore: number; duplicationLines: number; complexityScore: number; securityIssues: number; } export interface ICoreSafetyService { runCoreSafetyChecks(context: ProjectContext): Promise; validateCompilation(context: ProjectContext): Promise; validateProjectStructure(context: ProjectContext): Promise; validateBasicSafety(context: ProjectContext): Promise; } export interface IQualityValidationService { runQualityChecks(context: ProjectContext): Promise; analyzeSOLIDPrinciples(context: ProjectContext): Promise; detectDuplication(context: ProjectContext): Promise; analyzeComplexity(context: ProjectContext): Promise; performSecurityScan(context: ProjectContext): Promise; } export interface IValidationAggregatorService { aggregateResults(coreResult: CycleResult, qualityResult?: CycleResult): CycleResult; prioritizeIssues(results: CycleResult): CycleResult; generateRecommendations(results: CycleResult, context: ProjectContext): string[]; shouldBlockExecution(results: CycleResult): boolean; getIssueSummary(results: CycleResult): { criticalErrors: number; blockingErrors: number; highPriorityWarnings: number; totalIssues: number; }; } export interface IProjectAnalysisService { analyzeProjectStructure(projectPath: string): Promise<{ language: string; framework: string; fileCount: number; structure: string[]; }>; detectChangedFiles(projectPath: string, lastCheck?: Date): Promise; getProjectMetrics(projectPath: string): Promise; } export interface IValidationReportService { generateReport(result: CycleResult, context: ProjectContext): string; generateSummary(result: CycleResult): { status: string; summary: string; }; exportResults(result: CycleResult, format: 'json' | 'markdown' | 'text'): string; generateQuickStatus(results: CycleResult): string; generateMetrics(results: CycleResult): any; } //# sourceMappingURL=index.d.ts.map