"""Stage adapters - Bridge existing components to the Stage interface.

This module provides adapters that wrap existing components
(EffectPlugin, Display, DataSource, Camera) as Stage implementations.
"""

from .camera import CameraClockStage, CameraStage
from .data_source import DataSourceStage, PassthroughStage, SourceItemsToBufferStage
from .display import DisplayStage
from .effect_plugin import EffectPluginStage
from .factory import (
    create_stage_from_camera,
    create_stage_from_display,
    create_stage_from_effect,
    create_stage_from_font,
    create_stage_from_source,
)
from .message_overlay import MessageOverlayConfig, MessageOverlayStage
from .positioning import (
    PositioningMode,
    PositionStage,
    create_position_stage,
)
from .transform import (
    CanvasStage,
    FontStage,
    ImageToTextStage,
    ViewportFilterStage,
)

__all__ = [
    # Adapter classes
    "EffectPluginStage",
    "DisplayStage",
    "DataSourceStage",
    "PassthroughStage",
    "SourceItemsToBufferStage",
    "CameraStage",
    "CameraClockStage",
    "ViewportFilterStage",
    "FontStage",
    "ImageToTextStage",
    "CanvasStage",
    "MessageOverlayStage",
    "MessageOverlayConfig",
    "PositionStage",
    "PositioningMode",
    # Factory functions
    "create_stage_from_display",
    "create_stage_from_effect",
    "create_stage_from_source",
    "create_stage_from_camera",
    "create_stage_from_font",
    "create_position_stage",
]
