"""``FrameSource`` cross-cutting interface — public surface (AZ-398 v1.0.0).

Per AC-9, this module re-exports the Protocol and the error family
ONLY. Concrete strategies (``LiveCameraFrameSource``,
``VideoFileFrameSource``) live in their own modules and are imported
LAZILY by ``runtime_root.frame_source_factory.build_frame_source``;
this keeps the lazy-import boundary explicit and lets Tier-0 builds
omit the OpenCV runtime entirely.
"""

from gps_denied_onboard.frame_source.errors import (
    FrameSourceConfigError,
    FrameSourceError,
)
from gps_denied_onboard.frame_source.interface import FrameSource

__all__ = [
    "FrameSource",
    "FrameSourceConfigError",
    "FrameSourceError",
]
