//! Hyperparameter Optimization Module
//!
//! Core optimization infrastructure is provided by the `ml-hyperopt` crate.
//! Model-specific adapters stay here in `adapters/`.
//!
//! ## Example
//!
//! ```rust,no_run
//! use ml::hyperopt::{ArgminOptimizer, HyperparameterOptimizable};
//! use ml::hyperopt::adapters::mamba2::Mamba2Trainer;
//!
//! # fn example() -> anyhow::Result<()> {
//! // Create trainer
//! let trainer = Mamba2Trainer::new("test_data/ES_FUT_180d.parquet", 50)?;
//!
//! // Run optimization
//! let optimizer = ArgminOptimizer::builder()
//!     .max_trials(30)
//!     .n_initial(5)
//!     .seed(42)
//!     .build();
//!
//! let result = optimizer.optimize(trainer)?;
//! println!("Best loss: {:.6}", result.best_objective);
//! # Ok(())
//! # }
//! ```

// Re-export everything from ml-hyperopt crate
pub use ml_hyperopt::*;

// Modules that stay in ml (depend on ml-internal types)
pub mod adapters;
pub mod campaign;
pub mod shared_data;

#[cfg(test)]
mod tests_argmin;
