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

Validation models for Indian language transcriptions:
- IndicMFA: Montreal Forced Aligner - aligns reference text with audio timestamps
- IndicConformer: AI4Bharat's 600M Conformer ASR model (22 languages)

Usage:
```python
from src.validators import ValidatorRunner

runner = ValidatorRunner(
    enable_indicmfa=True,
    enable_indic_conformer=True,
    language="te"
)

result = runner.validate(
    audio_path="segment.flac",
    reference_text="reference transcription"
)
```
"""

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

from .runner import (
    ValidatorRunner, 
    RunnerConfig,
    AggregatedResult,
    run_all_validators
)

# 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__ = [
    # Base classes
    'BaseValidator',
    'ValidationResult', 
    'WordAlignment',
    'ValidatorStatus',
    'normalize_language_code',
    'LANGUAGE_CODES',
    # Runner
    'ValidatorRunner',
    'RunnerConfig',
    'AggregatedResult',
    'run_all_validators',
    # Lazy validator getters
    'get_indicmfa_validator',
    'get_indic_conformer_validator',
]
