namespace ZB.MOM.WW.MxGateway.Server.Dashboard;

/// <summary>
/// Authenticates dashboard access with API keys.
/// </summary>
public interface IDashboardAuthenticator
{
    /// <summary>
    /// Authenticates the dashboard session with credentials.
    /// </summary>
    /// <param name="username">Username to authenticate.</param>
    /// <param name="password">Password to authenticate.</param>
    /// <param name="cancellationToken">Token to cancel the asynchronous operation.</param>
    /// <returns>The authentication result.</returns>
    Task<DashboardAuthenticationResult> AuthenticateAsync(
        string? username,
        string? password,
        CancellationToken cancellationToken);
}
