import { BaseError } from './BaseError';
import { Logger } from '../../utils/logger';
export interface ErrorContext {
    requestId?: string;
    userId?: string;
    operation?: string;
    executionTime?: number;
    metadata?: Record<string, unknown>;
}
export interface ErrorHandlerOptions {
    shouldLog?: boolean;
    shouldReport?: boolean;
    shouldNotify?: boolean;
    severity?: 'low' | 'medium' | 'high' | 'critical';
}
export declare class ErrorHandler {
    private readonly logger;
    constructor(logger: Logger);
    handleError(error: Error, context?: ErrorContext, options?: ErrorHandlerOptions): BaseError;
    private normalizeError;
    private enhanceBaseError;
    private convertToBaseError;
    private logError;
    private reportError;
    private notifyError;
    categorizeError(error: Error): 'user' | 'system' | 'external';
    isRetryableError(error: Error): boolean;
}
//# sourceMappingURL=ErrorHandler.d.ts.map