//! Model-specific adapters for hyperparameter optimization
//!
//! This module provides adapters that connect Foxhunt ML models to the
//! generic hyperparameter optimization framework. Each adapter implements
//! `HyperparameterOptimizable` and `ParameterSpace` for a specific model.
//!
//! ## Available Adapters
//!
//! - **MAMBA-2** (`mamba2`): State-space model for time series forecasting
//! - **DQN** (`dqn`): Deep Q-Network for reinforcement learning
//! - **PPO** (`ppo`): Proximal Policy Optimization
//! - **TFT** (`tft`): Temporal Fusion Transformer
//! - **Liquid CfC v2** (`liquid`): Closed-form Continuous-time neural network
//!
//! ## Adding New Adapters
//!
//! To add a new model adapter:
//!
//! 1. Create a new module file (e.g., `my_model.rs`)
//! 2. Implement `ParameterSpace` for your model's hyperparameters
//! 3. Implement `HyperparameterOptimizable` for your model trainer
//! 4. Add module export in this file
//!
//! ### Example Structure
//!
//! ```rust,ignore
//! // my_model.rs
//! use crate::hyperopt::traits::{HyperparameterOptimizable, ParameterSpace};
//!
//! #[derive(Debug, Clone)]
//! pub struct MyModelParams {
//!     learning_rate: f64,
//!     // ... other hyperparameters
//! }
//!
//! impl ParameterSpace for MyModelParams {
//!     // ... implement trait methods
//! }
//!
//! pub struct MyModelTrainer {
//!     // ... training state
//! }
//!
//! impl HyperparameterOptimizable for MyModelTrainer {
//!     type Params = MyModelParams;
//!     type Metrics = MyModelMetrics;
//!     // ... implement trait methods
//! }
//! ```

// Shared utilities
pub mod dbn_loader;

// Active adapters (production-ready)
pub mod continuous_ppo;
pub mod dqn;
pub mod ensemble;
pub mod kan;
pub mod liquid;
pub mod mamba2;
pub mod ppo;
pub mod tft;
pub mod tggn;
pub mod tlob;
pub mod diffusion;
pub mod xlstm;

// Re-export adapters for convenience
pub use kan::{KANMetrics, KANParams, KANTrainer};
pub use liquid::{LiquidMetrics, LiquidParams, LiquidTrainer};
pub use continuous_ppo::{ContinuousPPOMetrics, ContinuousPPOParams, ContinuousPPOTrainer};
pub use dqn::{DQNMetrics, DQNParams, DQNTrainer};
pub use ensemble::{EnsembleParameterSpace, EnsembleSpaceConfig};
pub use mamba2::{Mamba2Metrics, Mamba2Params, Mamba2Trainer};
pub use ppo::{PPOMetrics, PPOParams, PPOTrainer};
pub use tft::{TFTMetrics, TFTParams, TFTTrainer as TFTHyperoptTrainer};
pub use tggn::{TGGNMetrics, TGGNParams, TGGNTrainer};
pub use tlob::{TLOBMetrics, TLOBParams, TLOBTrainer};
pub use diffusion::{DiffusionMetrics, DiffusionParams, DiffusionTrainer};
pub use xlstm::{XLSTMMetrics, XLSTMParams, XLSTMTrainer};
