/**
 * Base SOLID Checker - Abstrakte Basisklasse für alle SOLID-Prinzipien-Checker
 */
import { SOLIDViolation, SOLIDPrinciple } from '../types/solid-types';
export declare abstract class BaseSOLIDChecker {
    protected abstract principle: SOLIDPrinciple;
    protected abstract supportedLanguages: string[];
    /**
     * Hauptmethode für SOLID-Prinzipien-Check
     */
    abstract check(filePath: string, language: string): Promise<SOLIDViolation[]>;
    /**
     * Prüft ob die Sprache unterstützt wird
     */
    supportsLanguage(language: string): boolean;
    /**
     * Führt ein externes Tool aus und parsed das Ergebnis
     */
    protected runTool(command: string, args?: string[], options?: {
        cwd?: string;
        timeout?: number;
    }): Promise<string>;
    /**
     * Berechnet einen Severity-Score basierend auf Metriken
     */
    protected calculateSeverity(value: number, thresholds: {
        low: number;
        medium: number;
        high: number;
    }): 'low' | 'medium' | 'high' | 'critical';
    /**
     * Extrahiert Dateinamen ohne Pfad für bessere Lesbarkeit
     */
    protected getFileName(filePath: string): string;
    /**
     * Generiert eine konsistente Beschreibung für SOLID-Verstöße
     */
    protected createViolation(params: {
        file: string;
        line?: number;
        class?: string;
        method?: string;
        description: string;
        explanation: string;
        impact: string;
        suggestion: string;
        severity: 'low' | 'medium' | 'high' | 'critical';
        metrics?: {
            complexity?: number;
            methodCount?: number;
            dependencies?: number;
            parameters?: number;
            linesOfCode?: number;
            importConcerns?: string[];
            classCount?: number;
        };
    }): SOLIDViolation;
    /**
     * Prüft ob eine Datei TypeScript oder JavaScript ist
     */
    protected isTypeScriptFile(filePath: string): boolean;
    /**
     * Prüft ob eine Datei JavaScript ist
     */
    protected isJavaScriptFile(filePath: string): boolean;
    /**
     * Analysiert Import-Statements für Concern-Detection
     */
    protected analyzeImportConcerns(imports: string[]): string[];
    /**
     * Hilfsmethode für Pattern-Matching in Import-Strings
     */
    private matchesPattern;
}
//# sourceMappingURL=BaseSOLIDChecker.d.ts.map