#nullable enable using System.Text.Json; using System.Threading; using System.Threading.Tasks; using Wino.Core.Domain.Models.Accounts; using Wino.Mail.Api.Contracts.Ai; using Wino.Mail.Api.Contracts.Auth; using Wino.Mail.Api.Contracts.Common; using Wino.Mail.Api.Contracts.Users; namespace Wino.Core.Domain.Interfaces; public interface IWinoAccountApiClient { Task> RegisterAsync(string email, string password, CancellationToken cancellationToken = default); Task> LoginAsync(string email, string password, CancellationToken cancellationToken = default); Task> RefreshAsync(string refreshToken, CancellationToken cancellationToken = default); Task> ResendEmailConfirmationAsync(string endpoint, string ticket, CancellationToken cancellationToken = default); Task> ForgotPasswordAsync(string email, CancellationToken cancellationToken = default); Task> LogoutAsync(string refreshToken, CancellationToken cancellationToken = default); Task> GetCurrentUserAsync(CancellationToken cancellationToken = default); Task> GetAiStatusAsync(CancellationToken cancellationToken = default); Task> SummarizeAsync(string html, string targetLanguage, CancellationToken cancellationToken = default); Task> TranslateAsync(string html, string targetLanguage, CancellationToken cancellationToken = default); Task> RewriteAsync(string html, string mode, CancellationToken cancellationToken = default); Task> CreateCollectionsIdTicketAsync(CancellationToken cancellationToken = default); Task> CreatePurchaseIdTicketAsync(CancellationToken cancellationToken = default); Task> SyncStoreEntitlementsAsync(string? storeIdKey, string? purchaseIdKey, CancellationToken cancellationToken = default); Task GetSettingsAsync(CancellationToken cancellationToken = default); Task SaveSettingsAsync(string settingsJson, CancellationToken cancellationToken = default); Task GetMailboxesAsync(CancellationToken cancellationToken = default); Task ReplaceMailboxesAsync(ReplaceUserMailboxesRequestDto request, CancellationToken cancellationToken = default); }