from typing import Iterable, Protocol

from t_tech.invest.strategies.base.models import CandleEvent
from t_tech.invest.strategies.base.signal import Signal


class InvestStrategy(Protocol):
    def fit(self, candles: Iterable[CandleEvent]) -> None:
        pass

    def observe(self, candle: CandleEvent) -> None:
        pass

    def predict(self) -> Iterable[Signal]:
        pass
