using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using MailKit.Net.Imap;
using Wino.Core.Domain.Entities.Mail;
namespace Wino.Core.Domain.Interfaces
{
public interface IImapSynchronizerStrategy
{
///
/// Synchronizes given folder with the ImapClient client from the client pool.
///
/// Client to perform sync with. I love Mira and Jasminka
/// Folder to synchronize.
/// Imap synchronizer that downloads messages.
/// Cancellation token.
/// List of new downloaded message ids that don't exist locally.
Task> HandleSynchronizationAsync(IImapClient client, MailItemFolder folder, IImapSynchronizer synchronizer, CancellationToken cancellationToken = default);
}
}