/**
 * Error handling utilities and custom error classes for plugin system
 *
 * Provides structured error types for different failure scenarios:
 * - PluginError: General plugin execution failures
 * - PluginRegistrationError: Registration-specific failures
 * - PluginDependencyError: Dependency resolution failures
 * - PluginValidationError: Input/configuration validation failures
 */
/**
 * Base error class for plugin-related failures
 * Captures the plugin name and original error for debugging
 */
export declare class PluginError extends Error {
    readonly pluginName: string;
    readonly originalError?: Error | undefined;
    constructor(message: string, pluginName: string, originalError?: Error | undefined);
}
/**
 * Error thrown when plugin registration fails
 * Typically due to naming conflicts or invalid metadata
 */
export declare class PluginRegistrationError extends Error {
    readonly pluginName: string;
    constructor(message: string, pluginName: string);
}
/**
 * Error thrown when plugin dependencies cannot be resolved
 * Indicates missing or disabled required dependencies
 */
export declare class PluginDependencyError extends Error {
    readonly pluginName: string;
    readonly missingDependency: string;
    constructor(message: string, pluginName: string, missingDependency: string);
}
/**
 * Error thrown when plugin validation fails
 * Indicates specific field or configuration issues
 */
export declare class PluginValidationError extends Error {
    readonly pluginName: string;
    readonly field: string;
    constructor(message: string, pluginName: string, field: string);
}
/**
 * Utility class for error handling and creation
 * Provides consistent error wrapping and type checking
 */
export declare class ErrorUtils {
    /**
     * Wraps any error as a PluginError if not already one
     * Preserves the original error chain for debugging
     */
    static wrapPluginError(error: Error, pluginName: string): PluginError;
    /**
     * Type guard to check if error is a PluginError
     */
    static isPluginError(error: Error): error is PluginError;
    /**
     * Extracts plugin name from plugin-related errors
     * Returns undefined for non-plugin errors
     */
    static extractPluginName(error: Error): string | undefined;
    /**
     * Factory method for creating registration errors
     */
    static createRegistrationError(pluginName: string, reason: string): PluginRegistrationError;
    /**
     * Factory method for creating dependency errors
     */
    static createDependencyError(pluginName: string, missingDependency: string): PluginDependencyError;
    /**
     * Factory method for creating validation errors
     */
    static createValidationError(pluginName: string, field: string, reason: string): PluginValidationError;
}
//# sourceMappingURL=error.utils.d.ts.map