"""
Document processing modules for Toxo.

This package provides comprehensive document processing capabilities including:
- Basic document processing for common formats
- Advanced multi-modal processing with vision models
- Gemini-powered intelligent document analysis
- Simple processors for testing and development
"""

try:
    from .document_processor import DocumentProcessor
except Exception:
    DocumentProcessor = None

try:
    from .gemini_document_processor import (
        GeminiDocumentProcessor,
        DocumentInsights,
        ProcessingResult,
        create_gemini_document_processor,
    )
except Exception:
    GeminiDocumentProcessor = None
    DocumentInsights = None
    ProcessingResult = None
    create_gemini_document_processor = None

# Heavy/optional processors (guarded)
try:
    from .advanced_document_processor import AdvancedDocumentProcessor
except Exception:
    AdvancedDocumentProcessor = None

try:
    from .enhanced_multimodal_processor import (
        EnhancedMultiModalProcessor,
        VisionModelProcessor,
        FormulaProcessor,
        EnhancedSpreadsheetProcessor,
        DocumentLayout,
        LayoutElement,
        create_enhanced_multimodal_processor,
    )
except Exception:
    EnhancedMultiModalProcessor = None
    VisionModelProcessor = None
    FormulaProcessor = None
    EnhancedSpreadsheetProcessor = None
    DocumentLayout = None
    LayoutElement = None
    create_enhanced_multimodal_processor = None

try:
    from .simple_multimodal_processor import (
        SimpleMultiModalProcessor,
        SimpleFormulaProcessor,
        create_simple_multimodal_processor,
    )
except Exception:
    SimpleMultiModalProcessor = None
    SimpleFormulaProcessor = None
    create_simple_multimodal_processor = None

__all__ = [
    # Basic processors
    'DocumentProcessor',
    'AdvancedDocumentProcessor',
    
    # Enhanced multimodal processing
    'EnhancedMultiModalProcessor',
    'VisionModelProcessor',
    'FormulaProcessor',
    'EnhancedSpreadsheetProcessor',
    'DocumentLayout',
    'LayoutElement',
    'create_enhanced_multimodal_processor',
    
    # Simple processors for testing
    'SimpleMultiModalProcessor',
    'SimpleFormulaProcessor',
    'create_simple_multimodal_processor',
    
    # Gemini-powered processing
    'GeminiDocumentProcessor',
    'DocumentInsights',
    'ProcessingResult',
    'create_gemini_document_processor'
] 