pub mod auth;
pub mod business;
pub mod error;
pub mod interceptor;
pub mod storage;
#[cfg(feature = "server")]
pub mod streaming;
pub mod transport;
#[cfg(feature = "http-client")]
pub use transport::http::HttpClient;
#[cfg(feature = "jsonrpc-client")]
pub use transport::jsonrpc_client::JsonRpcClient;
#[cfg(feature = "client")]
pub use transport::negotiation::{
ClientConfig, TransportFactory, TransportNegotiator, default_registry,
};
#[cfg(any(feature = "http-client", feature = "jsonrpc-client"))]
pub use transport::negotiation::{
auto_connect, auto_connect_with, connect, connect_with, fetch_agent_card, fetch_agent_card_with,
};
#[cfg(feature = "client")]
pub use transport::retry::{RetryingTransport, subscribe_resilient};
#[cfg(feature = "http-server")]
pub use auth::with_auth;
#[cfg(feature = "http-server")]
pub use auth::{ApiKeyAuthenticator, BearerTokenAuthenticator, NoopAuthenticator};
#[cfg(feature = "auth")]
pub use auth::{JwtAuthenticator, OAuth2Authenticator, OpenIdConnectAuthenticator};
#[cfg(all(feature = "server", feature = "http-client"))]
pub use business::HttpPushNotificationSender;
#[cfg(feature = "server")]
pub use business::SimpleAgentInfo;
#[cfg(feature = "server")]
pub use business::{NoopPushNotificationSender, PushNotificationRegistry, PushNotificationSender};
#[cfg(feature = "server")]
pub use storage::{InMemoryEventLog, InMemoryTaskStorage};
#[cfg(feature = "server")]
pub use streaming::{InMemoryStreamingHandler, StreamingFanout};
#[cfg(feature = "server")]
pub use transport::connectrpc::ConnectRpcAdapter;
#[cfg(feature = "server")]
pub use transport::connectrpc::NoopStreamingHandler;
#[cfg(feature = "http-server")]
pub use transport::http::HttpServer;
#[cfg(feature = "jsonrpc-server")]
pub use transport::jsonrpc::{JsonRpcAdapter, jsonrpc_router, rest_router};
#[cfg(feature = "tracing")]
pub use interceptor::LoggingInterceptor;
#[cfg(any(feature = "http-client", feature = "jsonrpc-client"))]
pub use error::HttpClientError;
#[cfg(feature = "http-server")]
pub use error::HttpServerError;