using FutureMailAPI.DTOs; using FutureMailAPI.Models; namespace FutureMailAPI.Services { public interface IOAuthService { Task> CreateClientAsync(int userId, OAuthClientCreateDto createDto); Task> GetClientAsync(string clientId); Task> AuthorizeAsync(int userId, OAuthAuthorizationRequestDto request); Task> ExchangeCodeForTokenAsync(OAuthTokenRequestDto request); Task> RefreshTokenAsync(OAuthTokenRequestDto request); Task> RevokeTokenAsync(string token); Task> ValidateTokenAsync(string token); Task GetAccessTokenAsync(string token); Task GetClientByCredentialsAsync(string clientId, string clientSecret); Task> LoginAsync(OAuthLoginDto loginDto); } }