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; } }