"""
Indicator calculators (port fedele V15 tech_calculators.py, modularizzato).

Public API: each calculator stays a pure function on a pandas DataFrame.
The TechSnapshot orchestrator (analysis/tech_snapshot.py) is the only
piece that knows about all of them; consumers should NOT call these
directly — they read TechSnapshot fields.
"""

from analysis.indicators.atr import calc_atr
from analysis.indicators.candle_strength import calc_candle_strength
from analysis.indicators.candles import (
    calc_doji,
    calc_engulfing,
    calc_hammer,
    calc_piercing_dark,
    calc_star_patterns,
    calc_volume_weak,
)
from analysis.indicators.divergence import calc_divergence
from analysis.indicators.macd import (
    calc_macd_decel,
    calc_macd_decel_and_hist,
    calc_macd_hist,
)
from analysis.indicators.rsi import calc_rsi
from analysis.indicators.structure import STRUCT_THRESHOLDS, calc_market_structure
from analysis.indicators.swing import identify_swing_levels
from analysis.indicators.volume import calc_absorption
from analysis.indicators.vwap import calc_vwap_intraday

__all__ = [
    "calc_absorption",
    "calc_atr",
    "calc_candle_strength",
    "calc_divergence",
    "calc_doji",
    "calc_engulfing",
    "calc_hammer",
    "calc_macd_decel",
    "calc_macd_decel_and_hist",
    "calc_macd_hist",
    "calc_market_structure",
    "calc_piercing_dark",
    "calc_rsi",
    "calc_star_patterns",
    "calc_volume_weak",
    "calc_vwap_intraday",
    "identify_swing_levels",
    "STRUCT_THRESHOLDS",
]
