use tokio::task::JoinHandle;
#[cfg(feature = "wasm")]
use tokio_with_wasm::alias as tokio;
use crate::types::AgentEvent;
pub trait EventSource {
fn spawn<F, Fut>(&self, on_event: F) -> JoinHandle<anyhow::Result<()>>
where
F: Fn(AgentEvent) -> Fut + Send + Sync + 'static,
Fut: Future<Output = Option<String>> + Send + 'static;
}