pub mod http;
pub mod sse;
pub mod stdio;
use futures::future::BoxFuture;
use super::types::{JsonRpcNotification, JsonRpcRequest, JsonRpcResponse};
use echo_core::error::Result;
use std::sync::Arc;
pub trait McpTransport: Send + Sync {
fn send(&self, request: JsonRpcRequest) -> BoxFuture<'_, Result<JsonRpcResponse>>;
fn notify(&self, notification: JsonRpcNotification) -> BoxFuture<'_, Result<()>>;
fn close(&self) -> BoxFuture<'_, ()>;
fn notification_rx(&self) -> Option<Arc<dyn super::types::JsonRpcNotificationReceiver>>;
}