using Wino.Domain.Entities; using Wino.Domain.Models.MailItem; namespace Wino.Domain.Interfaces { public interface IThreadingStrategy { /// /// Attach thread mails to the list. /// /// Original mails. /// Original mails with thread mails. Task> ThreadItemsAsync(List items); bool ShouldThreadWithItem(IMailItem originalItem, IMailItem targetItem); } public interface IOutlookThreadingStrategy : IThreadingStrategy { } public interface IGmailThreadingStrategy : IThreadingStrategy { } public interface IImapThreadStrategy : IThreadingStrategy { } }