"""
Validators Module for Transcription Validation
===============================================

Primary: AlignmentScorer (CTC-based scoring)
- Fast word-level confidence scoring
- Mean alignment score: ~0.91 on Telugu samples

Secondary: IndicMFA (Forced Alignment)
- Precise word timestamps
- Uses CTC fallback if MFA not installed

Usage:
```python
# Primary method - alignment scoring
from src.validators import AlignmentScorer

scorer = AlignmentScorer(language="te")
result = scorer.score_transcription("audio.flac", "transcription text")
print(f"Score: {result.alignment_score}")  # 0-1
print(f"Quality: {'high' if result.alignment_score >= 0.8 else 'low'}")
scorer.cleanup()
```
"""

from .base import (
    BaseValidator, 
    ValidationResult, 
    WordAlignment,
    ValidatorStatus,
    normalize_language_code,
    LANGUAGE_CODES
)

from .alignment_scorer import (
    AlignmentScorer,
    AlignmentResult,
    WordScore,
    score_transcription
)

# Lazy imports for validators
def get_indicmfa_validator():
    from .indicmfa_validator import IndicMFAValidator
    return IndicMFAValidator

def get_indic_conformer_validator():
    from .indic_conformer_validator import IndicConformerValidator
    return IndicConformerValidator


__all__ = [
    # Primary - Alignment Scoring
    'AlignmentScorer',
    'AlignmentResult',
    'WordScore',
    'score_transcription',
    # Base classes
    'BaseValidator',
    'ValidationResult', 
    'WordAlignment',
    'ValidatorStatus',
    'normalize_language_code',
    'LANGUAGE_CODES',
    # Lazy validator getters (for advanced use)
    'get_indicmfa_validator',
    'get_indic_conformer_validator',
]
