using System.Threading.Tasks;
using Wino.Core.Domain.Entities.Shared;
using Wino.Core.Domain.Enums;
using Wino.Core.Domain.Models.Authentication;
namespace Wino.Core.Domain.Interfaces;
public interface IAuthenticator
{
///
/// Type of the provider.
///
MailProviderType ProviderType { get; }
Task GetTokenInformationAsync(MailAccount account);
Task GenerateTokenInformationAsync(MailAccount account);
/////
///// Gets the token for the given account from the cache.
///// Forces interactive login if the token is not found.
/////
///// Account to get access token for.
///// Access token
//Task GetTokenAsync(MailAccount account);
/////
///// Forces an interactive login to get the token for the given account.
/////
///// Account to get access token for.
///// Access token
//// Task GenerateTokenAsync(MailAccount account);
/////
///// ClientId in case of needed for authorization/authentication.
/////
//string ClientId { get; }
}