"""
Object detection processors with pluggable providers.

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

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


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

        return BaseObjectDetectionProcessor
    if name == "YOLOObjectDetectionProcessor":
        from .yolo_object_detection import YOLOObjectDetectionProcessor

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


__all__ = [
    "BaseObjectDetectionProcessor",
    "YOLOObjectDetectionProcessor",
]
