#![deny(clippy::unwrap_used, clippy::expect_used)]
#![cfg_attr(test, allow(clippy::unwrap_used, clippy::expect_used))]
#![allow(dead_code)]
#![allow(missing_docs)]
#![allow(missing_debug_implementations)]
#![allow(unused_crate_dependencies)]
#![allow(clippy::float_arithmetic)]
#![allow(clippy::non_ascii_literal)]
#![allow(clippy::str_to_string)]
#![allow(clippy::partial_pub_fields)]
#![allow(clippy::multiple_inherent_impl)]
#![allow(clippy::same_name_method)]
#![allow(clippy::shadow_reuse)]
#![allow(clippy::shadow_unrelated)]
#![allow(clippy::shadow_same)]
#![allow(clippy::doc_markdown)]
#![allow(clippy::indexing_slicing)]
#![allow(clippy::missing_const_for_fn)]
#![allow(clippy::module_name_repetitions)]
#![allow(clippy::integer_division)]
#![allow(clippy::cognitive_complexity)]
#![allow(clippy::similar_names)]
#![allow(clippy::clone_on_ref_ptr)]
#![allow(clippy::too_many_lines)]
#![allow(clippy::as_conversions)]
#![allow(clippy::cast_precision_loss)]
#![allow(clippy::cast_possible_truncation)]
#![allow(clippy::default_numeric_fallback)]
#![allow(clippy::arithmetic_side_effects)]
#![allow(clippy::needless_range_loop)]
#![allow(clippy::into_iter_on_ref)]
#![allow(clippy::new_without_default)]
#![allow(clippy::manual_let_else)]
#![allow(clippy::unnecessary_wraps)]
#![allow(clippy::too_many_arguments)]
#![allow(clippy::must_use_candidate)]
#![allow(clippy::missing_errors_doc)]
#![allow(clippy::cast_sign_loss)]
#![allow(clippy::cast_possible_wrap)]
#![allow(clippy::cast_lossless)]
#![allow(clippy::unused_async)]
#![allow(clippy::match_same_arms)]
#![allow(clippy::unused_self)]
#![allow(clippy::map_err_ignore)]
#![allow(clippy::single_match_else)]
#![allow(clippy::wildcard_imports)]
#![allow(clippy::unnecessary_cast)]

//! Regime detection and structural break analysis for Foxhunt ML.
//!
//! This crate provides structural break detection and regime classification:
//! - CUSUM-based changepoint detection (mean, variance, multivariate)
//! - Bayesian online changepoint detection
//! - Regime classifiers (trending, ranging, volatile)
//! - Regime orchestrator (coordinates detection, classification, persistence)
//! - Transition matrix and probability features

// Re-export core types so modules can use `crate::X`
pub use ml_core::types::OHLCVBar;
pub use ml_core::MLError;
pub use ml_ensemble::MarketRegime;

// Wave D: Structural Breaks Detection (Agents D1-D4)
pub mod bayesian_changepoint;
pub mod cusum;
pub mod multi_cusum;
pub mod pages_test;

// Wave D: Regime Classification (Agents D5-D8)
pub mod orchestrator;
pub mod ranging;
pub mod transition_matrix;
pub mod trending;
pub mod volatile;

// Wave D: Transition Probability Features (Agent D15)
pub mod transition_probability_features;
