#nullable enable using System.Text.Json; using System.Threading; using System.Threading.Tasks; using Wino.Core.Domain.Enums; using Wino.Core.Domain.Models.Accounts; using Wino.Mail.Api.Contracts.Ai; using Wino.Mail.Api.Contracts.Auth; using Wino.Mail.Api.Contracts.Billing; using Wino.Mail.Api.Contracts.Common; 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, CancellationToken cancellationToken = default); Task> TranslateAsync(string html, string targetLanguage, CancellationToken cancellationToken = default); Task> RewriteAsync(string html, string mode, CancellationToken cancellationToken = default); Task> CreateCheckoutSessionAsync(WinoAddOnProductType productId, CancellationToken cancellationToken = default); Task> CreateCustomerPortalSessionAsync(CancellationToken cancellationToken = default); Task GetSettingsAsync(CancellationToken cancellationToken = default); Task SaveSettingsAsync(string settingsJson, CancellationToken cancellationToken = default); }