namespace ScadaLink.NotificationService;

/// <summary>
/// Abstraction over SMTP client for testability.
/// </summary>
public interface ISmtpClientWrapper
{
    Task ConnectAsync(string host, int port, bool useTls, CancellationToken cancellationToken = default);
    Task AuthenticateAsync(string authType, string? credentials, CancellationToken cancellationToken = default);
    Task SendAsync(string from, IEnumerable<string> bccRecipients, string subject, string body, CancellationToken cancellationToken = default);
    Task DisconnectAsync(CancellationToken cancellationToken = default);
}
