pub mod detector;
pub mod ensemble;
pub mod hmm;
pub mod primitives;
pub mod router;
pub(crate) mod types;
pub use detector::{DetectorIndicator, RegimeDetector};
pub use ensemble::{
EnsembleConfig, EnsembleIndicator, EnsembleRegimeDetector, EnsembleResult, EnsembleStatus,
};
pub use hmm::{HMMConfig, HMMRegimeDetector, HmmIndicator};
pub use primitives::{
ADX, AdxIndicator, AtrPrimIndicator, BbPrimIndicator, BollingerBands, BollingerBandsValues,
EmaPrimIndicator, RSI, RsiPrimIndicator,
};
pub use router::{
ActiveStrategy, AssetSummary, DetectionMethod, EnhancedRouter, EnhancedRouterConfig,
RoutedSignal, RouterIndicator,
};
use crate::registry::IndicatorRegistry;
pub fn register_all(reg: &IndicatorRegistry) {
reg.register("detector", detector::factory);
reg.register("ensemble", ensemble::factory);
reg.register("hmm", hmm::factory);
reg.register("primitives", primitives::factory);
reg.register("router", router::factory);
}