#![doc = include_str!("../README.md")]
#![allow(clippy::multiple_crate_versions)]
#![deny(unsafe_code)]
pub mod browser;
pub mod cdp_protection;
pub mod config;
pub mod error;
pub mod page;
pub mod pool;
#[cfg(feature = "extract")]
pub mod extract;
#[cfg(feature = "extract")]
pub use extract::Extractable;
#[cfg(feature = "similarity")]
pub mod similarity;
#[cfg(feature = "similarity")]
pub use similarity::{ElementFingerprint, SimilarMatch, SimilarityConfig};
#[cfg(feature = "stealth")]
pub mod stealth;
#[cfg(feature = "stealth")]
pub mod behavior;
#[cfg(feature = "stealth")]
pub mod fingerprint;
#[cfg(feature = "stealth")]
pub mod tls;
#[cfg(feature = "stealth")]
pub mod webrtc;
#[cfg(feature = "stealth")]
pub mod diagnostic;
#[cfg(feature = "mcp")]
pub mod mcp;
#[cfg(feature = "metrics")]
pub mod metrics;
pub mod session;
pub mod recorder;
pub use browser::BrowserInstance;
pub use config::{BrowserConfig, HeadlessMode, StealthLevel};
pub use error::{BrowserError, Result};
pub use page::{NodeHandle, PageHandle, ResourceFilter, WaitUntil};
pub use pool::{BrowserHandle, BrowserPool, PoolStats};
#[cfg(feature = "stealth")]
pub use stealth::{NavigatorProfile, StealthConfig, StealthProfile};
#[cfg(feature = "stealth")]
pub use behavior::InteractionLevel;
#[cfg(feature = "stealth")]
pub use behavior::RequestPacer;
#[cfg(feature = "stealth")]
pub use fingerprint::{BrowserKind, DeviceProfile};
#[cfg(feature = "stealth")]
pub use webrtc::{ProxyLocation, WebRtcConfig, WebRtcPolicy};
pub mod prelude {
pub use crate::config::BrowserConfig;
pub use crate::error::{BrowserError, Result};
pub use crate::pool::{BrowserHandle, BrowserPool, PoolStats};
#[cfg(feature = "stealth")]
pub use crate::stealth::{NavigatorProfile, StealthConfig, StealthProfile};
}