from __future__ import annotations

from typing import Protocol

from investly.domain import Bar, Fundamentals, Market, Quote


class MarketDataProvider(Protocol):
    name: str

    def quote(self, market: Market, symbol: str) -> Quote: ...

    def history(self, market: Market, symbol: str, days: int = 260) -> list[Bar]: ...

    def fundamentals(self, market: Market, symbol: str) -> Fundamentals: ...
