#![allow(clippy::multiple_crate_versions)]
pub mod circuit_breaker;
pub mod error;
pub mod fetcher;
pub mod health;
pub mod manager;
pub mod session;
pub mod storage;
pub mod strategy;
pub mod types;
#[cfg(feature = "graph")]
pub mod graph;
#[cfg(feature = "browser")]
pub mod browser;
#[cfg(feature = "tls-profiled")]
pub mod http_client;
#[cfg(feature = "mcp")]
pub mod mcp;
pub use circuit_breaker::{CircuitBreaker, STATE_CLOSED, STATE_HALF_OPEN, STATE_OPEN};
pub use error::{ProxyError, ProxyResult};
pub use fetcher::{FreeListFetcher, FreeListSource, ProxyFetcher, load_from_fetcher};
pub use health::{HealthChecker, HealthMap};
pub use manager::{PoolStats, ProxyHandle, ProxyManager, ProxyManagerBuilder};
pub use session::{SessionMap, StickyPolicy};
pub use storage::MemoryProxyStore;
pub use strategy::{
BoxedRotationStrategy, LeastUsedStrategy, ProxyCandidate, RandomStrategy, RotationStrategy,
RoundRobinStrategy, WeightedStrategy,
};
pub use types::{ProfiledRequestMode, Proxy, ProxyConfig, ProxyMetrics, ProxyRecord, ProxyType};
#[cfg(feature = "graph")]
pub use graph::{BoxedProxyManager, NoopProxyManager, ProxyManagerPort};
#[cfg(feature = "browser")]
pub use browser::{BrowserProxySource, ProxyManagerBridge};
#[cfg(feature = "tls-profiled")]
pub use http_client::{ProfiledRequester, ProfiledRequesterError};