using System.Threading.Tasks; using Wino.Core.Domain.Entities.Shared; using Wino.Core.Domain.Enums; using Wino.Core.Domain.Models.Accounts; namespace Wino.Core.Domain.Interfaces { public interface IBaseSynchronizer { /// /// Account that is assigned for this synchronizer. /// MailAccount Account { get; } /// /// Synchronizer state. /// AccountSynchronizerState State { get; } /// /// Queues a single request to be executed in the next synchronization. /// /// Request to queue. void QueueRequest(IRequestBase request); /// /// Synchronizes profile information with the server. /// Sender name and Profile picture are updated. /// /// Profile information model that holds the values. Task GetProfileInformationAsync(); } }