pub mod ack;
pub mod advisory;
pub mod client;
pub mod consumer;
pub mod dlq;
pub mod inbox;
pub mod publisher;
pub mod stream;
pub mod subscriber;
#[cfg(test)]
pub(crate) mod testing;
pub use client::NatsClient;
pub use dlq::{
DEFAULT_DLQ_DUPLICATE_WINDOW, DEFAULT_DLQ_MAX_AGE, DEFAULT_DLQ_REPLICAS, DlqConfig, DlqOptions,
FailureInfo, build_dlq_headers, ensure_dlq_stream, publish_to_dlq,
};
pub use publisher::NatsPublisher;
pub use stream::StreamConfig;
pub use subscriber::{SubscribeOptions, SubscriptionHandle};
pub use async_nats::ConnectOptions;
#[cfg(feature = "nats-kv-inbox")]
pub use inbox::nats_kv::{NatsKvIdempotencyConfig, NatsKvIdempotencyStore};
#[cfg(feature = "redis-inbox")]
pub use inbox::redis::{RedisIdempotencyConfig, RedisIdempotencyStore};