#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> LogoutAsync(string refreshToken, CancellationToken cancellationToken = default); Task> GetCurrentUserAsync(CancellationToken cancellationToken = default); Task> GetAiStatusAsync(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); }