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