import { IoCError, IoCErrorCode, ErrorContext, ConfigError, AnalysisError, GenerationError, ValidationError, FileSystemError } from './IoCError.js';
/**
 * Factory functions for creating specific IoC errors
 */
export declare class ErrorFactory {
    static configNotFound(filePath: string): ConfigError;
    static configParseError(filePath: string, parseError: string): ConfigError;
    static configValidationError(property: string, value: any, expectedType: string): ConfigError;
    static sourceDirectoryNotFound(sourcePath: string): FileSystemError;
    static sourceDirectoryEmpty(sourcePath: string): AnalysisError;
    static noClassesFound(sourcePath: string): AnalysisError;
    static circularDependency(className: string, dependencyChain: string[]): AnalysisError;
    static duplicateInterfaceImplementation(interfaceName: string, classes: string[]): AnalysisError;
    static duplicateAbstractClassExtension(abstractClassName: string, classes: string[]): AnalysisError;
    static generationFailed(reason: string, outputPath?: string): GenerationError;
    static outputFileError(outputPath: string, error: string): GenerationError;
    static moduleConfigInvalid(moduleName: string, reason: string): ValidationError;
    static modulePatternInvalid(pattern: string, moduleName: string): ValidationError;
    static fileNotFound(filePath: string): FileSystemError;
    static fileReadError(filePath: string, error: string): FileSystemError;
    static fileWriteError(filePath: string, error: string): FileSystemError;
    static validationError(message: string, context?: ErrorContext): ValidationError;
    static unexpectedError(error: Error, context?: ErrorContext): IoCError;
    static rendererNotFound(rendererName: string): IoCError;
    /**
     * Wrap a generic error with IoC error context
     */
    static wrapError(error: Error, code: IoCErrorCode, context?: ErrorContext): IoCError;
    /**
     * Create error from validation result
     */
    static fromValidationResult(property: string, value: any, expectedType: string, context?: ErrorContext): ValidationError;
}
//# sourceMappingURL=errorFactory.d.ts.map