mod content;
mod downstream;
mod forward;
mod serve;
mod transport_peer;
mod unsolicited;
mod upstream;
#[cfg(feature = "a2a")]
mod a2a_mcp_codec;
#[cfg(feature = "a2a")]
mod cross_bridge_peer;
#[cfg(feature = "a2a")]
mod cross_protocol;
pub use content::{ToolResultCodec, Translated, Translator};
pub use downstream::{Downstream, DownstreamConfig, DownstreamError, Identity};
pub use forward::{Bridge, BridgeError, BridgePeer, Forwarded, SendFuture};
pub use serve::{BridgeLoop, LoopError, LoopReport, Wiring};
pub use transport_peer::TransportPeer;
pub use unsolicited::Unsolicited;
pub use upstream::{BridgeClientError, OpenedUpstream, Upstream, UpstreamError, run_client};
#[cfg(feature = "a2a")]
pub use a2a_mcp_codec::A2aMcpCodec;
#[cfg(feature = "a2a")]
pub use cross_bridge_peer::CrossBridgePeer;
#[cfg(feature = "a2a")]
pub use cross_protocol::{
CrossProtocolCodec, CrossProtocolError, ProtocolSide, RequestCodecReport, RequestCodecStep,
};
pub use downstream::negotiate as negotiate_downstream;
#[cfg(feature = "a2a")]
pub use crate::domain::bridge::a2a_mcp::{
CrossProtocolReport, Direction, Protocol, Step, StepKind, a2a_message_to_mcp_content,
a2a_message_to_mcp_text, a2a_skill_to_mcp_tool, mcp_content_to_a2a_part,
};