#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Playlists;
namespace MediaBrowser.Controller.Playlists
{
public interface IPlaylistManager
{
///
/// Gets the playlist.
///
/// The playlist identifier.
/// The user identifier.
/// Playlist.
Playlist GetPlaylistForUser(Guid playlistId, Guid userId);
///
/// Creates the playlist.
///
/// The .
/// The created playlist.
Task CreatePlaylist(PlaylistCreationRequest request);
///
/// Updates a playlist.
///
/// The .
/// Task.
Task UpdatePlaylist(PlaylistUpdateRequest request);
///
/// Gets all playlists a user has access to.
///
/// The user identifier.
/// IEnumerable<Playlist>.
IEnumerable GetPlaylists(Guid userId);
///
/// Adds a share to the playlist.
///
/// The .
/// Task.
Task AddUserToShares(PlaylistUserUpdateRequest request);
///
/// Removes a share from the playlist.
///
/// The playlist identifier.
/// The user identifier.
/// The share.
/// Task.
Task RemoveUserFromShares(Guid playlistId, Guid userId, PlaylistUserPermissions share);
///
/// Adds to playlist.
///
/// The playlist identifier.
/// The item ids.
/// The user identifier.
/// Task.
Task AddItemToPlaylistAsync(Guid playlistId, IReadOnlyCollection itemIds, Guid userId);
///
/// Removes from playlist.
///
/// The playlist identifier.
/// The entry ids.
/// Task.
Task RemoveItemFromPlaylistAsync(string playlistId, IEnumerable entryIds);
///
/// Gets the playlists folder.
///
/// Folder.
Folder GetPlaylistsFolder();
///
/// Gets the playlists folder for a user.
///
/// The user identifier.
/// Folder.
Folder GetPlaylistsFolder(Guid userId);
///
/// Moves the item.
///
/// The playlist identifier.
/// The entry identifier.
/// The new index.
/// Task.
Task MoveItemAsync(string playlistId, string entryId, int newIndex);
///
/// Removed all playlists of a user.
/// If the playlist is shared, ownership is transferred.
///
/// The user id.
/// Task.
Task RemovePlaylistsAsync(Guid userId);
///
/// Saves a playlist.
///
/// The playlist.
void SavePlaylistFile(Playlist item);
}
}