#nullable enable
using Jellyfin.Data.Entities;
using MediaBrowser.Model.Services;
using Microsoft.AspNetCore.Http;
namespace MediaBrowser.Controller.Net
{
    /// 
    /// IAuthService.
    /// 
    public interface IAuthService
    {
        /// 
        /// Authenticate and authorize request.
        /// 
        /// Request.
        /// Authorization attributes.
        void Authenticate(IRequest request, IAuthenticationAttributes authAttribtutes);
        /// 
        /// Authenticate and authorize request.
        /// 
        /// Request.
        /// Authorization attributes.
        /// Authenticated user.
        User? Authenticate(HttpRequest request, IAuthenticationAttributes authAttribtutes);
        /// 
        /// Authenticate request.
        /// 
        /// The request.
        /// Authorization information. Null if unauthenticated.
        AuthorizationInfo Authenticate(HttpRequest request);
    }
}