# app/src/trading/market_intelligence/engine/protocol.py
 
from __future__ import annotations

from typing import Protocol

from src.trading.market_intelligence.common.models import (
    EngineContext,
    EngineMetadata,
    EngineResult,
)


class EngineProtocol(Protocol):
    """Контракт аналитического Engine."""

    @classmethod
    def get_metadata(cls) -> EngineMetadata:
        """Вернуть metadata Engine без создания экземпляра."""
        ...

    async def analyze(
        self,
        context: EngineContext,
    ) -> EngineResult:
        """Выполнить анализ рыночного контекста."""
        ...