#[cfg(all(feature = "rustls", feature = "native-tls"))]
compile_error!("features `rustls` and `native-tls` cannot be enabled together");
mod client;
mod config;
mod email;
mod error;
mod provider;
mod queue;
mod rate_limit;
mod smtp;
mod telemetry;
pub use client::{DeliveryMode, MailClient, MailClientBuilder, MessageId, SendReceipt};
pub use config::{MailbridgeConfig, MailbridgeConfigBuilder, QueueBackend, SmtpConfig};
pub use email::{Attachment, EmailAddress, EmailMessage, EmailMessageBuilder};
pub use error::{MailError, Result};
pub use provider::{MailProvider, SendStatus};
#[cfg(feature = "queue-postgres")]
pub use queue::PostgresQueue;
#[cfg(feature = "queue-scylla")]
pub use queue::ScyllaQueue;
#[cfg(feature = "queue-sqlite")]
pub use queue::SqliteQueue;
pub use queue::{
MailQueue, QueueHandle, QueueId, QueueItem, QueueWorker, QueueWorkerConfig, QueuedEmail,
};
pub use rate_limit::RateLimitConfig;
#[cfg(feature = "rate-limit")]
pub use rate_limit::MailRateLimiter;
pub use smtp::SmtpClient;
pub use telemetry::{TelemetryEvent, TelemetryFields};
#[cfg(all(feature = "hyvor-relay", feature = "api"))]
pub use provider::HyvorRelayProvider;
#[cfg(feature = "mailgun")]
pub use provider::MailgunProvider;
#[cfg(feature = "sendgrid")]
pub use provider::SendGridProvider;
#[cfg(feature = "sendpulse")]
pub use provider::SendPulseProvider;