"""
MSA (Market Structure Analysis) Strategy Module
================================================

Market Structure Analysis strategy for the ml-engine.
Implements ICT/SMC (Inner Circle Trader / Smart Money Concepts) methodology.

Components:
- StructureDetector: Detection of market structure elements
    - Swing points (HH, HL, LH, LL)
    - Break of Structure (BOS)
    - Change of Character (CHoCH)
    - Fair Value Gaps (FVG)
    - Order Blocks (OB)
    - Premium/Discount Zones

- MSAFeatureEngineer: Feature extraction from structure analysis
    - Structure features
    - POI distance features
    - Trend features
    - Liquidity features

- MSAModel: XGBoost-based classifier for structure predictions
    - BOS direction prediction
    - POI reaction probability
    - Structure continuation probability
    - Optional GNN for swing relationships

- MSATrainer: Training utilities
    - Data preparation
    - Walk-forward validation
    - Evaluation metrics

Author: ML-Specialist (NEXUS v4.0)
Created: 2026-01-25
Version: 1.0.0

Usage:
    from src.models.strategies.msa import (
        StructureDetector,
        MSAFeatureEngineer,
        MSAModel,
        MSATrainer,
        TrainingConfig
    )

    # Detection
    detector = StructureDetector(swing_order=5)
    analysis = detector.analyze(df)

    # Feature engineering
    engineer = MSAFeatureEngineer()
    features = engineer.compute_structure_features(df)

    # Training
    config = TrainingConfig(n_folds=5)
    trainer = MSATrainer(config)
    metrics = trainer.train(df, symbol="BTCUSD")

    # Prediction
    predictions = trainer.model.predict(features)
"""

# Structure Detection
from .structure_detector import (
    StructureDetector,
    SwingPoint,
    SwingType,
    StructureEvent,
    StructureType,
    FairValueGap,
    OrderBlock,
    LiquidityLevel,
    PremiumDiscountZone,
    POIType,
)

# Feature Engineering
from .feature_engineering import (
    MSAFeatureEngineer,
    PointOfInterest,
)

# Model
from .model import (
    MSAModel,
    MSAPrediction,
    MSAMetrics,
    BOSDirection,
)

# Trainer
from .trainer import (
    MSATrainer,
    TrainingConfig,
    WalkForwardResult,
)

__all__ = [
    # Structure Detection
    'StructureDetector',
    'SwingPoint',
    'SwingType',
    'StructureEvent',
    'StructureType',
    'FairValueGap',
    'OrderBlock',
    'LiquidityLevel',
    'PremiumDiscountZone',
    'POIType',

    # Feature Engineering
    'MSAFeatureEngineer',
    'PointOfInterest',

    # Model
    'MSAModel',
    'MSAPrediction',
    'MSAMetrics',
    'BOSDirection',

    # Trainer
    'MSATrainer',
    'TrainingConfig',
    'WalkForwardResult',
]

__version__ = '1.0.0'
