import type { ProcessorErrorMessageTemplate } from "../../types/index.js";
/**
 * File Processing Error Codes
 *
 * Comprehensive error codes for file processing operations including:
 * - Download operations (timeout, auth, network)
 * - File validation (size, type, format)
 * - Content processing (parsing, encoding, extraction)
 * - Security validation (XXE, XSS, zip bombs)
 * - System errors
 *
 * @module processors/errors
 */
/**
 * Enumeration of all file processing error codes.
 * Each code represents a specific failure scenario with associated messaging.
 */
export declare enum FileErrorCode {
    /** File download failed due to network or server error */
    DOWNLOAD_FAILED = "DOWNLOAD_FAILED",
    /** Download operation exceeded timeout threshold */
    DOWNLOAD_TIMEOUT = "DOWNLOAD_TIMEOUT",
    /** Authentication failed when accessing the file */
    DOWNLOAD_AUTH_FAILED = "DOWNLOAD_AUTH_FAILED",
    /** Network error during download (connection reset, DNS failure, etc.) */
    NETWORK_ERROR = "NETWORK_ERROR",
    /** File was not found at the specified location */
    FILE_NOT_FOUND = "FILE_NOT_FOUND",
    /** Request was rate limited by the server */
    RATE_LIMITED = "RATE_LIMITED",
    /** File exceeds maximum allowed size */
    FILE_TOO_LARGE = "FILE_TOO_LARGE",
    /** File type is not supported for processing */
    UNSUPPORTED_TYPE = "UNSUPPORTED_TYPE",
    /** File format is invalid or malformed */
    INVALID_FORMAT = "INVALID_FORMAT",
    /** File MIME type doesn't match expected format */
    INVALID_MIME_TYPE = "INVALID_MIME_TYPE",
    /** File magic bytes don't match expected file type */
    INVALID_MAGIC_BYTES = "INVALID_MAGIC_BYTES",
    /** File appears to be corrupted or damaged */
    CORRUPTED_FILE = "CORRUPTED_FILE",
    /** File internal structure is invalid */
    INVALID_STRUCTURE = "INVALID_STRUCTURE",
    /** Generic processing failure */
    PROCESSING_FAILED = "PROCESSING_FAILED",
    /** Failed to parse file content */
    PARSING_FAILED = "PARSING_FAILED",
    /** Text encoding error (not UTF-8, BOM issues, etc.) */
    ENCODING_ERROR = "ENCODING_ERROR",
    /** Failed to extract content from file */
    EXTRACTION_FAILED = "EXTRACTION_FAILED",
    /** Failed to decompress file content */
    DECOMPRESSION_FAILED = "DECOMPRESSION_FAILED",
    /** Security validation failed */
    SECURITY_VALIDATION_FAILED = "SECURITY_VALIDATION_FAILED",
    /** XML External Entity (XXE) attack detected */
    XXE_DETECTED = "XXE_DETECTED",
    /** Cross-site scripting (XSS) attack detected */
    XSS_DETECTED = "XSS_DETECTED",
    /** Potentially malicious code execution detected */
    CODE_EXECUTION_DETECTED = "CODE_EXECUTION_DETECTED",
    /** Zip bomb or decompression bomb detected */
    ZIP_BOMB_DETECTED = "ZIP_BOMB_DETECTED",
    /** Unknown or unexpected error */
    UNKNOWN_ERROR = "UNKNOWN_ERROR"
}
/**
 * Error messages map with technical and user-friendly messaging for each error code.
 * All messages are designed to be clear, actionable, and free of technical jargon.
 */
export declare const ERROR_MESSAGES: Record<FileErrorCode, ProcessorErrorMessageTemplate>;
/**
 * Get the error message template for a specific error code.
 *
 * @param code - The FileErrorCode to get the template for
 * @returns The ErrorMessageTemplate for the given code
 */
export declare function getErrorTemplate(code: FileErrorCode): ProcessorErrorMessageTemplate;
/**
 * Check if an error code represents a retryable error.
 *
 * @param code - The FileErrorCode to check
 * @returns true if the error is retryable
 */
export declare function isRetryableErrorCode(code: FileErrorCode): boolean;
