#nullable disable
using System;
using System.Collections.Generic;
using System.Threading;
using MediaBrowser.Controller.Entities;
namespace MediaBrowser.Controller.Persistence
{
///
/// Provides an interface to implement a UserData repository.
///
public interface IUserDataRepository : IDisposable
{
///
/// Saves the user data.
///
/// The user id.
/// The key.
/// The user data.
/// The cancellation token.
void SaveUserData(long userId, string key, UserItemData userData, CancellationToken cancellationToken);
///
/// Gets the user data.
///
/// The user id.
/// The key.
/// The user data.
UserItemData GetUserData(long userId, string key);
///
/// Gets the user data.
///
/// The user id.
/// The keys.
/// The user data.
UserItemData GetUserData(long userId, List keys);
///
/// Return all user data associated with the given user.
///
/// The user id.
/// The list of user item data.
List GetAllUserData(long userId);
///
/// Save all user data associated with the given user.
///
/// The user id.
/// The user item data.
/// The cancellation token.
void SaveAllUserData(long userId, UserItemData[] userData, CancellationToken cancellationToken);
}
}