/**
 * Analyzer Factory for AuditMySite
 *
 * Provides dependency injection and factory pattern for creating
 * analyzers with proper configuration and type safety.
 */
import { IAnalyzer, IAnalyzerFactory, AnalyzerType, ILogger } from './interfaces';
import { QualityAnalysisOptions } from '../../types/enhanced-metrics';
export interface AnalyzerFactoryConfig {
    readonly logger: ILogger;
    readonly qualityAnalysisOptions?: QualityAnalysisOptions;
    readonly enabledAnalyzers?: AnalyzerType[];
}
/**
 * Factory for creating analyzer instances with proper configuration
 */
export declare class AnalyzerFactory implements IAnalyzerFactory {
    private readonly config;
    private readonly analyzerCache;
    constructor(config: AnalyzerFactoryConfig);
    /**
     * Create an analyzer of the specified type
     */
    createAnalyzer<T extends IAnalyzer>(type: AnalyzerType): T;
    /**
     * Get all available analyzer types
     */
    getAvailableTypes(): AnalyzerType[];
    /**
     * Check if a specific analyzer type is available
     */
    isAvailable(type: AnalyzerType): boolean;
    /**
     * Create multiple analyzers at once
     */
    createAnalyzers(types: AnalyzerType[]): IAnalyzer[];
    /**
     * Clean up all cached analyzers
     */
    cleanup(): Promise<void>;
    private createAnalyzerInstance;
}
/**
 * Error thrown when an analyzer type is not available
 */
export declare class AnalyzerNotAvailableError extends Error {
    constructor(type: AnalyzerType);
}
//# sourceMappingURL=analyzer-factory.d.ts.map