"""
Unified Pipeline Architecture (Compatibility Shim).

This module re-exports the pipeline architecture from Sideline for backward
compatibility with existing Mainline code. New code should import directly
from sideline.pipeline.

Note: This module is deprecated and will be removed in future versions.
"""

# Re-export from sideline for backward compatibility
from sideline.pipeline import (
    Pipeline,
    PipelineConfig,
    PipelineContext,
    Stage,
    StageConfig,
    StageError,
    StageResult,
    PipelineParams,
    StageRegistry,
    discover_stages,
    register_camera,
    register_display,
    register_effect,
    register_source,
)

# Re-export from engine.pipeline.presets (Mainline-specific)
from engine.pipeline.presets import (
    DEMO_PRESET,
    FIREHOSE_PRESET,
    PIPELINE_VIZ_PRESET,
    POETRY_PRESET,
    UI_PRESET,
    WEBSOCKET_PRESET,
    PipelinePreset,
    create_preset_from_params,
    get_preset,
    list_presets,
)

# Re-export from sideline.pipeline.params
from sideline.pipeline.params import (
    DEFAULT_HEADLINE_PARAMS,
    DEFAULT_PIPELINE_PARAMS,
    DEFAULT_PYGAME_PARAMS,
)

# Re-export additional functions from sideline.pipeline
from sideline.pipeline import (
    create_default_pipeline,
    create_pipeline_from_params,
    PipelineRunner,
)

__all__ = [
    # Core (from sideline)
    "Stage",
    "StageConfig",
    "StageError",
    "StageResult",
    "PipelineContext",
    # Controller (from sideline)
    "Pipeline",
    "PipelineConfig",
    "PipelineRunner",
    "create_default_pipeline",
    "create_pipeline_from_params",
    # Params (from sideline)
    "PipelineParams",
    "DEFAULT_HEADLINE_PARAMS",
    "DEFAULT_PIPELINE_PARAMS",
    "DEFAULT_PYGAME_PARAMS",
    # Presets (from engine)
    "PipelinePreset",
    "PRESETS",
    "DEMO_PRESET",
    "POETRY_PRESET",
    "PIPELINE_VIZ_PRESET",
    "WEBSOCKET_PRESET",
    "FIREHOSE_PRESET",
    "UI_PRESET",
    "get_preset",
    "list_presets",
    "create_preset_from_params",
    # Registry (from sideline)
    "StageRegistry",
    "discover_stages",
    "register_source",
    "register_effect",
    "register_display",
    "register_camera",
]
