using TeleWave.Application.Common.Models; namespace TeleWave.Application.Common.Interfaces; public sealed record IssuedRefreshToken(string RawToken, DateTimeOffset ExpiresAt); public sealed record RotatedRefreshToken(Guid UserId, string RawToken, DateTimeOffset ExpiresAt); public interface IRefreshTokenService { Task IssueAsync(Guid userId, CancellationToken cancellationToken); Task> RotateAsync( string rawToken, CancellationToken cancellationToken ); Task RevokeAsync(string rawToken, CancellationToken cancellationToken); }