#pragma warning disable CS1591
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.
/// BoxSet wrapped in an awaitable task.
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);
///
/// Gets the folder where collections are stored.
///
/// Will create the collection folder on the storage if set to true.
/// The folder instance referencing the collection storage.
Task GetCollectionsFolder(bool createIfNeeded);
}
}