/**
 * 🚨 Standardized Error Handling
 *
 * Common error types and handling utilities for the audit system.
 * Provides consistent error categorization and recovery strategies.
 */
/**
 * Base class for all audit-related errors
 */
export declare class AuditError extends Error {
    readonly code: string;
    readonly category: ErrorCategory;
    readonly recoverable: boolean;
    readonly context?: Record<string, unknown>;
    constructor(message: string, code: string, category: ErrorCategory, recoverable?: boolean, context?: Record<string, unknown>);
}
/**
 * Error categories for better error handling
 */
export declare enum ErrorCategory {
    NETWORK = "NETWORK",
    BROWSER = "BROWSER",
    PARSING = "PARSING",
    VALIDATION = "VALIDATION",
    RESOURCE = "RESOURCE",
    TIMEOUT = "TIMEOUT",
    PERMISSION = "PERMISSION",
    CONFIGURATION = "CONFIGURATION",
    UNKNOWN = "UNKNOWN"
}
/**
 * Network-related errors (connection, DNS, HTTP)
 */
export declare class NetworkError extends AuditError {
    constructor(message: string, url?: string, statusCode?: number);
}
/**
 * Browser/Playwright-related errors
 */
export declare class BrowserError extends AuditError {
    constructor(message: string, browserType?: string, recoverable?: boolean);
}
/**
 * Sitemap/XML parsing errors
 */
export declare class ParsingError extends AuditError {
    constructor(message: string, source?: string);
}
/**
 * Data validation errors
 */
export declare class ValidationError extends AuditError {
    constructor(message: string, field?: string, value?: unknown);
}
/**
 * System resource errors (memory, CPU, disk)
 */
export declare class ResourceError extends AuditError {
    constructor(message: string, resourceType?: string, limit?: number);
}
/**
 * Timeout errors
 */
export declare class TimeoutError extends AuditError {
    constructor(message: string, operation?: string, timeoutMs?: number);
}
/**
 * Permission/access errors
 */
export declare class PermissionError extends AuditError {
    constructor(message: string, resource?: string);
}
/**
 * Configuration errors
 */
export declare class ConfigurationError extends AuditError {
    constructor(message: string, configKey?: string, providedValue?: unknown);
}
/**
 * Error handler utility
 */
export declare class ErrorHandler {
    /**
     * Categorize unknown errors into known types
     */
    static categorize(error: Error | unknown): AuditError;
    /**
     * Get user-friendly error message with recovery suggestions
     */
    static getUserMessage(error: AuditError): string;
    /**
     * Determine if error should be retried
     */
    static shouldRetry(error: AuditError, attemptNumber: number, maxRetries: number): boolean;
    /**
     * Calculate backoff delay for retries
     */
    static getRetryDelay(attemptNumber: number, baseDelay?: number): number;
}
/**
 * Async wrapper with automatic error categorization and retry logic
 */
export declare function withErrorHandling<T>(operation: () => Promise<T>, options?: {
    maxRetries?: number;
    baseDelay?: number;
    onRetry?: (error: AuditError, attempt: number) => void;
}): Promise<T>;
//# sourceMappingURL=audit-errors.d.ts.map