use crate::{
events::{DomEvent, PlatformEvent},
prelude::{EventName, PotentialEvent},
};
pub use accesskit::NodeId as AccessibilityId;
use rustc_hash::FxHashMap;
use smallvec::SmallVec;
use tokio::sync::mpsc::{UnboundedReceiver, UnboundedSender};
use tokio::sync::watch;
pub type FocusSender = watch::Sender<AccessibilityId>;
pub type FocusReceiver = watch::Receiver<AccessibilityId>;
pub type EventEmitter = UnboundedSender<DomEvent>;
pub type EventReceiver = UnboundedReceiver<DomEvent>;
pub type EventsQueue = SmallVec<[PlatformEvent; 2]>;
pub type PotentialEvents = FxHashMap<EventName, Vec<PotentialEvent>>;