"""
Transcription processors with pluggable providers.

Use ProcessorFactory to create instances:
    from mini_videorag.processors import ProcessorFactory
    factory = ProcessorFactory()
    transcription = factory.create("transcription")
"""

# pylint: disable=import-outside-toplevel,undefined-all-variable


def __getattr__(name):
    """Lazy load processor classes to avoid importing heavy ML dependencies."""
    if name == "BaseTranscriptionProcessor":
        from .base import BaseTranscriptionProcessor

        return BaseTranscriptionProcessor
    if name == "OpenAIWhisperProcessor":
        from .openai_whisper import OpenAIWhisperProcessor

        return OpenAIWhisperProcessor
    if name == "HFWhisperProcessor":
        from .hf_whisper import HFWhisperProcessor

        return HFWhisperProcessor
    raise AttributeError(f"module {__name__!r} has no attribute {name!r}")


__all__ = [
    "BaseTranscriptionProcessor",
    "OpenAIWhisperProcessor",
    "HFWhisperProcessor",
]
