using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Model.Playlists;
namespace MediaBrowser.Controller.Playlists
{
public interface IPlaylistManager
{
///
/// Gets the playlists.
///
/// The user identifier.
/// IEnumerable<Playlist>.
IEnumerable GetPlaylists(Guid userId);
///
/// Creates the playlist.
///
/// The options.
/// Task<Playlist>.
Task CreatePlaylist(PlaylistCreationRequest options);
///
/// Adds to playlist.
///
/// The playlist identifier.
/// The item ids.
/// The user identifier.
/// Task.
Task AddToPlaylistAsync(string playlistId, ICollection itemIds, Guid userId);
///
/// Removes from playlist.
///
/// The playlist identifier.
/// The entry ids.
/// Task.
Task RemoveFromPlaylistAsync(string playlistId, IEnumerable entryIds);
///
/// Gets the playlists folder.
///
/// 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);
}
}