using MediaBrowser.Model.Querying;
using System.Threading;
using System.Threading.Tasks;
namespace MediaBrowser.Controller.Security
{
    public interface IAuthenticationRepository
    {
        /// 
        /// Creates the specified information.
        /// 
        /// The information.
        /// The cancellation token.
        /// Task.
        Task Create(AuthenticationInfo info, CancellationToken cancellationToken);
        /// 
        /// Updates the specified information.
        /// 
        /// The information.
        /// The cancellation token.
        /// Task.
        Task Update(AuthenticationInfo info, CancellationToken cancellationToken);
        /// 
        /// Gets the specified query.
        /// 
        /// The query.
        /// QueryResult{AuthenticationInfo}.
        QueryResult Get(AuthenticationInfoQuery query);
        /// 
        /// Gets the specified identifier.
        /// 
        /// The identifier.
        /// AuthenticationInfo.
        AuthenticationInfo Get(string id);
    }
}