"""
Training module for TradingAgent

Components:
- WalkForwardValidator: Walk-forward validation for time series
- TemporalDataSplitter: Temporal data splitting utilities
- SampleWeighter: Sample weighting with dynamic factor (v2.0)
- SessionVolatilityWeighter: Session and ATR-based weighting
- DynamicFactorWeighter: Standalone dynamic factor weighting
- SymbolTimeframeTrainer: Train models per symbol and timeframe
"""

from .walk_forward import WalkForwardValidator
from .data_splitter import TemporalDataSplitter, create_ml_first_splits
from .sample_weighting import SampleWeighter, SampleWeightConfig
from .session_volatility_weighting import (
    SessionVolatilityWeighter,
    SessionWeightConfig,
    create_session_features
)
from .dynamic_factor_weighting import (
    DynamicFactorWeighter,
    DynamicFactorConfig,
    compute_target_weights_for_training
)
from .symbol_timeframe_trainer import (
    SymbolTimeframeTrainer,
    TrainerConfig,
    SymbolConfig,
    SYMBOL_CONFIGS
)

__all__ = [
    # Validation
    'WalkForwardValidator',
    'TemporalDataSplitter',
    'create_ml_first_splits',
    # Sample weighting
    'SampleWeighter',
    'SampleWeightConfig',
    'SessionVolatilityWeighter',
    'SessionWeightConfig',
    'create_session_features',
    # Dynamic factor weighting (new)
    'DynamicFactorWeighter',
    'DynamicFactorConfig',
    'compute_target_weights_for_training',
    # Symbol-specific training (new)
    'SymbolTimeframeTrainer',
    'TrainerConfig',
    'SymbolConfig',
    'SYMBOL_CONFIGS',
]