import { CodeMetrics, CodeIssue, FileAnalysis, AnalysisResult, AnalysisSummary, Suggestion } from './types.js';
export declare class CodeAnalyzer {
    private knownPatterns;
    constructor();
    findCodeFiles(directory: string, excludePatterns?: string[]): Promise<string[]>;
    generateSuggestions(analysis: FileAnalysis): Suggestion[];
    generateRefactoringIdeas(analysis: FileAnalysis): Suggestion[];
    analyzeFile(filePath: string): Promise<FileAnalysis>;
    calculateMetrics(content: string, language: string): Promise<CodeMetrics>;
    private calculateComplexity;
    private calculateCyclomaticComplexity;
    private calculateCognitiveComplexity;
    private calculateHalsteadMetrics;
    private extractFunctions;
    private extractFunctionBody;
    private calculateMaintainability;
    private detectDuplication;
    private hashBlock;
    private assessQuality;
    detectIssues(content: string, filePath: string, language: string): Promise<CodeIssue[]>;
    private detectSecurityIssues;
    private detectPerformanceIssues;
    private detectQualityIssues;
    private detectStyleIssues;
    detectLanguage(filePath: string): string;
    private initializePatterns;
    analyzeDirectory(dirPath: string, options?: {
        excludePatterns?: string[];
    }): Promise<AnalysisResult>;
    getFilesRecursively(dirPath: string, excludePatterns?: string[]): Promise<string[]>;
    private isSourceFile;
    generateSummary(files: FileAnalysis[]): AnalysisSummary;
    generateRecommendations(summary: AnalysisSummary): string[];
}
//# sourceMappingURL=analyzer.d.ts.map