using System ;
using System.Collections.Generic ;
using MediaBrowser.Controller.Entities ;
using MediaBrowser.Controller.Entities.Movies ;
namespace MediaBrowser.Controller.Collections
{
public interface ICollectionManager
{
/// <summary>
/// Occurs when [collection created].
/// </summary>
event EventHandler < CollectionCreatedEventArgs > CollectionCreated ;
/// <summary>
/// Occurs when [items added to collection].
/// </summary>
event EventHandler < CollectionModifiedEventArgs > ItemsAddedToCollection ;
/// <summary>
/// Occurs when [items removed from collection].
/// </summary>
event EventHandler < CollectionModifiedEventArgs > ItemsRemovedFromCollection ;
/// <summary>
/// Creates the collection.
/// </summary>
/// <param name="options">The options.</param>
BoxSet CreateCollection ( CollectionCreationOptions options ) ;
/// <summary>
/// Adds to collection.
/// </summary>
/// <param name="collectionId">The collection identifier.</param>
/// <param name="itemIds">The item ids.</param>
void AddToCollection ( Guid collectionId , IEnumerable < string > itemIds ) ;
/// <summary>
/// Removes from collection.
/// </summary>
/// <param name="collectionId">The collection identifier.</param>
/// <param name="itemIds">The item ids.</param>
void RemoveFromCollection ( Guid collectionId , IEnumerable < string > itemIds ) ;
void AddToCollection ( Guid collectionId , IEnumerable < Guid > itemIds ) ;
void RemoveFromCollection ( Guid collectionId , IEnumerable < Guid > itemIds ) ;
/// <summary>
/// Collapses the items within box sets.
/// </summary>
/// <param name="items">The items.</param>
/// <param name="user">The user.</param>
/// <returns>IEnumerable{BaseItem}.</returns>
IEnumerable < BaseItem > CollapseItemsWithinBoxSets ( IEnumerable < BaseItem > items , User user ) ;
}
}