import { type SourceFile } from 'ts-morph'; /** * TypeScript error representation */ export interface TypeScriptError { code: string; message: string; file: string; line: number; column: number; } /** * Comprehensive transformation metrics for E2E validation */ export interface TransformationMetrics { before: { services: number; methods: number; responsibilities: Set; properties: number; tsErrors: TypeScriptError[]; eslintErrors: number; eslintWarnings: number; compilationSuccess: boolean; }; after: { focusedServices: number; stateServices: number; propertiesExtracted: number; importsAdded: number; crossServiceDependencies: number; tsErrors: TypeScriptError[]; eslintErrors: number; eslintWarnings: number; compilationSuccess: boolean; }; transformation: { duration: number; filesGenerated: number; filesModified: number; }; validation: { typeScriptPassed: boolean; eslintPassed: boolean; buildPassed: boolean; rollbackTriggered: boolean; }; } /** * Collects comprehensive metrics before/after transformation for E2E validation */ export declare class TransformationMetricsCollector { /** * Collect metrics from original service before transformation */ collectBeforeMetrics(sourceFile: SourceFile, eslintResults?: { errors: number; warnings: number; }): Promise; /** * Collect metrics from generated services after transformation */ collectAfterMetrics(_originalFile: SourceFile, generatedFiles: SourceFile[], eslintResults?: { errors: number; warnings: number; }): Promise; /** * Calculate improvement metrics */ calculateImprovement(metrics: TransformationMetrics): { errorReduction: string; eslintImprovement: string; zeroManualFixes: boolean; productionReady: boolean; }; /** * Find the service class in source file */ private findServiceClass; /** * Detect responsibilities in service class */ private detectResponsibilities; /** * Detect TypeScript errors in source file */ private detectTypeScriptErrors; /** * Count properties extracted to focused services */ private countExtractedProperties; /** * Count imports added to generated services */ private countAddedImports; /** * Detect cross-service dependencies in generated files */ private detectCrossServiceDependencies; /** * Format metrics as human-readable report */ formatMetricsReport(metrics: TransformationMetrics): string; } //# sourceMappingURL=transformation-metrics-collector.d.ts.map