"""PySignals: transform raw market data into indicators and trading signals."""

__version__ = "0.1.0"

from pyalbedo.core.stream import StreamingWindow
from pyalbedo.core.types import OHLCV, Direction, Signal, SignalBundle
from pyalbedo.core.window import MarketDataWindow
from pyalbedo.indicators.base import Indicator
from pyalbedo.indicators.moving_averages import DEMA, EMA, SMA, TEMA, WMA, HullMA
from pyalbedo.indicators.oscillators import (
    CCI,
    MACD,
    ROC,
    RSI,
    Stochastic,
    UltimateOscillator,
    WilliamsR,
)
from pyalbedo.indicators.trend import ADX, Aroon, Supertrend
from pyalbedo.indicators.volatility import ATR, BollingerBands, KeltnerChannels
from pyalbedo.indicators.volume import MFI, OBV, VWAP, VWMA
from pyalbedo.signals.base import SignalGenerator
from pyalbedo.signals.composite import SignalAggregator

__all__ = [
    "__version__",
    "Direction",
    "OHLCV",
    "Signal",
    "SignalBundle",
    "MarketDataWindow",
    "StreamingWindow",
    "Indicator",
    "SMA",
    "EMA",
    "WMA",
    "DEMA",
    "TEMA",
    "HullMA",
    "RSI",
    "Stochastic",
    "MACD",
    "CCI",
    "WilliamsR",
    "UltimateOscillator",
    "ROC",
    "ATR",
    "BollingerBands",
    "KeltnerChannels",
    "OBV",
    "VWAP",
    "MFI",
    "VWMA",
    "ADX",
    "Aroon",
    "Supertrend",
    "SignalGenerator",
    "SignalAggregator",
]
