using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Jellyfin.Data.Entities;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Movies;
namespace MediaBrowser.Controller.Collections
{
public interface ICollectionManager
{
///
/// Occurs when [collection created].
///
event EventHandler CollectionCreated;
///
/// Occurs when [items added to collection].
///
event EventHandler ItemsAddedToCollection;
///
/// Occurs when [items removed from collection].
///
event EventHandler ItemsRemovedFromCollection;
///
/// Creates the collection.
///
/// The options.
Task CreateCollectionAsync(CollectionCreationOptions options);
///
/// Adds to collection.
///
/// The collection identifier.
/// The item ids.
/// representing the asynchronous operation.
Task AddToCollectionAsync(Guid collectionId, IEnumerable itemIds);
///
/// Removes from collection.
///
/// The collection identifier.
/// The item ids.
/// A representing the asynchronous operation.
Task RemoveFromCollectionAsync(Guid collectionId, IEnumerable itemIds);
///
/// Collapses the items within box sets.
///
/// The items.
/// The user.
/// IEnumerable{BaseItem}.
IEnumerable CollapseItemsWithinBoxSets(IEnumerable items, User user);
}
}