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

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