use crate::cmux::CmuxSession;
use crate::events::SerialEvent;
use crate::hub::shared::{ExchangeWaiter, RxHubShared};
use std::sync::Arc;
use tauri::ipc::Channel;
pub trait RxHubHandle: Send + Sync {
fn shared(&self) -> Arc<RxHubShared>;
fn set_exchange_waiter(&self, waiter: Arc<ExchangeWaiter>);
fn clear_exchange_waiter(&self);
fn cancel_active_exchange(&self);
fn attach_watch(
&self,
channel: Channel<SerialEvent>,
batch_timeout_ms: u64,
read_size: usize,
route_urc: bool,
);
fn detach_watch(&self);
fn attach_cmux(&self, session: Arc<CmuxSession>);
fn detach_cmux(&self);
fn shutdown_hub(&self) {}
}