#[cfg(all(feature = "native", feature = "browser"))]
compile_error!(
"features `native` and `browser` are mutually exclusive; \
use --no-default-features --features browser for browser/WASM builds"
);
pub mod config;
pub mod error;
pub mod sse;
pub mod types;
#[cfg(feature = "native")]
pub mod failover;
pub mod hermes;
#[cfg(feature = "native")]
pub mod local_provider;
#[cfg(feature = "native")]
pub mod openai_compat;
#[cfg(feature = "native")]
pub mod placement;
#[cfg(feature = "native")]
pub mod provider;
#[cfg(feature = "native")]
pub mod retry;
#[cfg(feature = "native")]
pub mod router;
#[cfg(feature = "native")]
pub mod eml_retry;
#[cfg(feature = "native")]
pub use eml_retry::{retry_model_path, RetryModel, RETRY_MODEL_FILENAME};
#[cfg(feature = "browser")]
pub mod browser_transport;
pub use config::LlmProviderConfig;
#[deprecated(
since = "0.2.0",
note = "renamed to LlmProviderConfig to avoid collision"
)]
pub type ProviderConfig = LlmProviderConfig;
pub use error::{ProviderError, Result};
pub use sse::parse_sse_line;
pub use types::{ChatMessage, ChatRequest, ChatResponse, StreamChunk, ToolCall, Usage};
#[cfg(feature = "native")]
pub use failover::FailoverChain;
pub use hermes::ReasoningMode;
#[cfg(feature = "native")]
pub use local_provider::LocalProvider;
#[cfg(feature = "native")]
pub use openai_compat::OpenAiCompatProvider;
#[cfg(feature = "native")]
pub use placement::{CachedResolver, PlacedProvider, PlacementResolver, ProviderFactory};
#[cfg(feature = "native")]
pub use provider::Provider;
#[cfg(feature = "native")]
pub use retry::{RetryConfig, RetryPolicy};
#[cfg(feature = "native")]
pub use router::ProviderRouter;
#[cfg(feature = "browser")]
pub use browser_transport::BrowserLlmClient;