/**
 * Intelligent Refactoring Recommender
 *
 * Analyzes code and provides intelligent refactoring recommendations:
 * - Code smell detection
 * - Pattern-based suggestions
 * - Complexity reduction
 * - Modern syntax upgrades
 */
export type RefactoringCategory = 'extract-method' | 'extract-variable' | 'inline' | 'rename' | 'move' | 'simplify' | 'modernize' | 'performance' | 'readability' | 'dry';
export type RefactoringPriority = 'low' | 'medium' | 'high' | 'critical';
export interface RefactoringRecommendation {
    id: string;
    category: RefactoringCategory;
    priority: RefactoringPriority;
    title: string;
    description: string;
    location: {
        startLine: number;
        endLine: number;
        code?: string;
    };
    suggestion: string;
    example?: {
        before: string;
        after: string;
    };
    estimatedImpact: {
        readability: number;
        maintainability: number;
        performance: number;
    };
}
export interface RefactoringReport {
    filePath?: string;
    language: string;
    recommendations: RefactoringRecommendation[];
    summary: {
        total: number;
        byCategory: Record<RefactoringCategory, number>;
        byPriority: Record<RefactoringPriority, number>;
        overallScore: number;
    };
    analyzedAt: Date;
}
/**
 * Analyze code and provide refactoring recommendations
 */
export declare function analyzeForRefactoring(code: string, language?: string, filePath?: string): RefactoringReport;
/**
 * Format refactoring report for display
 */
export declare function formatRefactoringReport(report: RefactoringReport): string;
/**
 * Get priority refactoring recommendations
 */
export declare function getPriorityRecommendations(report: RefactoringReport, limit?: number): RefactoringRecommendation[];
/**
 * Get recommendations by category
 */
export declare function getRecommendationsByCategory(report: RefactoringReport, category: RefactoringCategory): RefactoringRecommendation[];
/**
 * Estimate refactoring effort
 */
export declare function estimateRefactoringEffort(report: RefactoringReport): {
    totalItems: number;
    estimatedMinutes: number;
    breakdown: Record<RefactoringPriority, number>;
};
export default analyzeForRefactoring;
