using System;
using System.Collections.Generic;
using Jellyfin.Data.Entities;
namespace MediaBrowser.Controller
{
    /// 
    /// Manages the storage and retrieval of display preferences.
    /// 
    public interface IDisplayPreferencesManager
    {
        /// 
        /// Gets the display preferences for the user and client.
        /// 
        /// The user's id.
        /// The client string.
        /// The associated display preferences.
        DisplayPreferences GetDisplayPreferences(Guid userId, string client);
        /// 
        /// Gets the default item display preferences for the user and client.
        /// 
        /// The user id.
        /// The item id.
        /// The client string.
        /// The item display preferences.
        ItemDisplayPreferences GetItemDisplayPreferences(Guid userId, Guid itemId, string client);
        /// 
        /// Gets all of the item display preferences for the user and client.
        /// 
        /// The user id.
        /// The client string.
        /// A list of item display preferences.
        IList ListItemDisplayPreferences(Guid userId, string client);
        /// 
        /// Saves changes to the provided display preferences.
        /// 
        /// The display preferences to save.
        void SaveChanges(DisplayPreferences preferences);
        /// 
        /// Saves changes to the provided item display preferences.
        /// 
        /// The item display preferences to save.
        void SaveChanges(ItemDisplayPreferences preferences);
    }
}