//! Room message queue: Redis Streams + Redis Pub/Sub.

pub mod producer;
pub mod types;
pub mod worker;

pub use producer::{MessageProducer, RedisPubSub};
pub use types::{
    AgentTaskEvent, EmailEnvelope, ProjectRoomEvent, ReactionGroup, RoomMessageEnvelope,
    RoomMessageEvent, RoomMessageStreamChunkEvent, TypingEvent,
};
pub use worker::{
    room_worker_task, start as start_worker, start_email_worker, EmailSendFn, EmailSendFut, GetRedis,
    PersistFn, RedisFuture,
};
