use std::collections::{BTreeMap, HashMap, HashSet, VecDeque};
use std::path::PathBuf;
use std::sync::{Arc, Mutex, RwLock};
use std::time::{Duration, Instant, SystemTime, UNIX_EPOCH};
use quantrs2_circuit::prelude::*;
use quantrs2_core::{
error::{QuantRS2Error, QuantRS2Result},
gate::GateOp,
qubit::QubitId,
};
use serde::{Deserialize, Serialize};
#[cfg(feature = "scirs2")]
use scirs2_graph::{
betweenness_centrality, closeness_centrality, minimum_spanning_tree, dijkstra_path,
strongly_connected_components, Graph,
};
#[cfg(feature = "scirs2")]
use scirs2_linalg::{det, eig, inv, matrix_norm, prelude::*, svd, LinalgError, LinalgResult};
#[cfg(feature = "scirs2")]
use scirs2_optimize::{minimize, OptimizeResult};
#[cfg(feature = "scirs2")]
use scirs2_stats::{corrcoef, distributions, mean, pearsonr, spearmanr, std, var};
use scirs2_stats::ttest::Alternative;
#[cfg(not(feature = "scirs2"))]
mod fallback_scirs2;
#[cfg(not(feature = "scirs2"))]
use fallback_scirs2::*;
use scirs2_core::ndarray::{Array1, Array2, ArrayView1, ArrayView2};
use scirs2_core::random::prelude::*;
use crate::{
adaptive_compilation::AdaptiveCompilationConfig,
backend_traits::{query_backend_capabilities, BackendCapabilities},
calibration::{CalibrationManager, DeviceCalibration},
integrated_device_manager::IntegratedQuantumDeviceManager,
noise_model::CalibrationNoiseModel,
topology::HardwareTopology,
CircuitResult, DeviceError, DeviceResult,
};
pub mod analytics;
pub mod benchmarking;
pub mod collaboration;
pub mod config;
pub mod discovery;
pub mod economic;
pub mod integration;
pub mod ml_integration;
pub mod optimization;
pub mod registry;
pub mod security;
pub use analytics::*;
pub use benchmarking::*;
pub use collaboration::*;
pub use config::*;
pub use discovery::*;
pub use economic::*;
pub use integration::*;
pub use ml_integration::*;
pub use optimization::*;
pub use registry::*;
pub use security::*;
#[cfg(not(feature = "scirs2"))]
pub use fallback_scirs2::*;