using Backend.Common; using Backend.Contracts; using Backend.Domain; namespace Backend.Services; public interface IUserSessionService { Task ResolveSessionAsync(HttpContext context, CancellationToken cancellationToken = default); Task CreateSessionAsync(string twitchUserId, string displayName, string role, RequestMetadata metadata, CancellationToken cancellationToken = default); Task CreateDevSessionAsync(LoginRequest request, RequestMetadata metadata, CancellationToken cancellationToken = default); Task CountRecentSessionsFromIpAsync(string ipAddress, DateTimeOffset since, CancellationToken cancellationToken = default); Task GetIdleTimeoutHoursAsync(CancellationToken cancellationToken = default); Task LogoutAsync(UserSession session, CancellationToken cancellationToken = default); }