/**
 * Configuration Loader for M2JS
 * Loads settings from .m2jsrc files and environment variables
 */
import { PerformanceOptions } from './performance-optimizer';
/**
 * M2JS Configuration interface
 */
export interface M2JSConfig {
    deadCode: {
        enableCache: boolean;
        maxCacheSize: number;
        chunkSize: number;
        showProgress: boolean;
        format: 'table' | 'json';
        includeMetrics: boolean;
        includeSuggestions: boolean;
    };
    duplicateCode: {
        minLines: number;
        minTokens: number;
        ignorePatterns: string[];
        includeContext: boolean;
        includeSuggestions: boolean;
        format: 'table' | 'json';
    };
    extraction: {
        includeComments: boolean;
        includeUsageExamples: boolean;
        includeBusinessContext: boolean;
        includeArchitectureInsights: boolean;
        includeSemanticAnalysis: boolean;
    };
    files: {
        extensions: string[];
        ignorePatterns: string[];
        maxFileSize: number;
    };
    output: {
        format: 'markdown' | 'json';
        preserveStructure: boolean;
    };
}
/**
 * Configuration loader class
 */
export declare class ConfigLoader {
    private static configCache;
    /**
     * Load configuration from multiple sources with precedence:
     * 1. Environment variables (highest priority)
     * 2. .m2jsrc in current directory
     * 3. .m2jsrc in home directory
     * 4. Default configuration (lowest priority)
     */
    static loadConfig(projectPath?: string): M2JSConfig;
    /**
     * Load configuration from a specific file
     */
    private static loadConfigFile;
    /**
     * Deep merge two configuration objects
     */
    private static mergeConfigs;
    /**
     * Apply environment variable overrides
     */
    private static applyEnvironmentOverrides;
    /**
     * Convert config to performance options
     */
    static toPerformanceOptions(config: M2JSConfig): PerformanceOptions;
    /**
     * Clear cached configuration (useful for testing)
     */
    static clearCache(): void;
    /**
     * Generate example configuration file content
     */
    static generateExampleConfig(): string;
}
