import { MigrationPhase, SharedResource, MigrationRisk, TechStackInfo, RollbackStrategy } from '../types';
import { BasicAnalysis } from './projectAnalyzer';
import { BreakingChange } from './breakingChangeAnalyzer';
import { DependencyAnalysis } from './dependencyAnalyzer';
export interface MigrationAnalysis {
    sourceStack: TechStackInfo;
    targetStack: TechStackInfo;
    complexity: MigrationComplexity;
    risks: MigrationRisk[];
    sharedResources: SharedResource[];
    suggestedPhases: MigrationPhase[];
    estimatedDuration: string;
    recommendedStrategy: 'big-bang' | 'incremental' | 'parallel-run';
    breakingChanges?: BreakingChange[];
    breakingChangesSummary?: {
        total: number;
        critical: number;
        automatable: number;
        estimatedHours: number;
    };
    dependencyAnalysis?: DependencyAnalysis;
}
export interface MigrationComplexity {
    score: number;
    factors: ComplexityFactor[];
    level: 'low' | 'medium' | 'high' | 'critical';
}
export interface ComplexityFactor {
    name: string;
    impact: number;
    description: string;
}
export declare class MigrationAnalyzer {
    private sourcePath;
    private targetTechStack;
    constructor(sourcePath: string, targetTechStack: Partial<TechStackInfo>);
    analyzeMigration(basicAnalysis: BasicAnalysis): Promise<MigrationAnalysis>;
    private detectCurrentStack;
    private completeTargetStack;
    private detectSharedResources;
    private checkForRoutes;
    private assessMigrationRisks;
    private calculateComplexity;
    private getFrameworkComplexity;
    private generateMigrationPhases;
    private estimateDuration;
    private parseDuration;
    private recommendStrategy;
    generateRollbackStrategy(phases: MigrationPhase[], sharedResources: SharedResource[]): Promise<RollbackStrategy>;
}
//# sourceMappingURL=migrationAnalyzer.d.ts.map