#nullable enable using System; using System.Text.Json; using System.Threading; using System.Threading.Tasks; using Wino.Core.Domain.Entities.Shared; 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 IWinoAccountProfileService { Task RegisterAsync(string email, string password, CancellationToken cancellationToken = default); Task LoginAsync(string email, string password, CancellationToken cancellationToken = default); Task RefreshAsync(CancellationToken cancellationToken = default); Task RefreshProfileAsync(CancellationToken cancellationToken = default); Task> ResendEmailConfirmationAsync(string endpoint, string ticket, CancellationToken cancellationToken = default); Task> ForgotPasswordAsync(string email, CancellationToken cancellationToken = default); Task GetActiveAccountAsync(); Task GetAuthenticatedAccountAsync(CancellationToken cancellationToken = default); Task HasActiveAccountAsync(); 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> SyncStoreEntitlementsAsync(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); Task ProcessBillingCallbackAsync(Uri callbackUri, CancellationToken cancellationToken = default); Task SignOutAsync(CancellationToken cancellationToken = default); }