//! Streaming primitives shared across the runtime, archivist, and sink crates.
//!
//! `BusEvent` wraps the existing `Event` with routing context; `SessionStream`
//! is the trait every uni-directional sink implements. The existing
//! `SessionShare` trait (bi-directional, Matrix) lives in `crate::sharing`
//! and is not superseded.

pub mod bus_event;
pub mod filter;
pub mod receiver;
pub mod stream;

pub use bus_event::{BusEvent, EventKind, EventOrigin, EventRouting};
pub use filter::{EventFilter, EventKindMask};
pub use receiver::BusReceiver;
pub use stream::{
    SessionStream, StreamError, StreamKind, StreamOutcome, StreamScope, StreamSummary,
};
