"""
Shared utilities for invoice field extraction and matching.

This module provides common functionality used by both:
- Inference stage (field_extractor.py) - extracting values from OCR text
- Matching stage (normalizer.py) - generating variants for CSV matching

Modules:
- TextCleaner: Unicode normalization and OCR error correction
- FormatVariants: Generate format variants for matching
- FieldValidators: Validate field values (Luhn, dates, amounts)
- FuzzyMatcher: Fuzzy string matching with OCR awareness
- OCRCorrections: Comprehensive OCR error correction
- ContextExtractor: Context-aware field extraction
"""

from .text_cleaner import TextCleaner
from .format_variants import FormatVariants
from .validators import FieldValidators
from .fuzzy_matcher import FuzzyMatcher, FuzzyMatchResult
from .ocr_corrections import OCRCorrections, CorrectionResult
from .context_extractor import ContextExtractor, ExtractionCandidate

__all__ = [
    'TextCleaner',
    'FormatVariants',
    'FieldValidators',
    'FuzzyMatcher',
    'FuzzyMatchResult',
    'OCRCorrections',
    'CorrectionResult',
    'ContextExtractor',
    'ExtractionCandidate',
]
