using System;
namespace MonoGame.Extended.Collections
{
/// Interface for collections that can be observed
/// Type of items managed in the collection
public interface IObservableCollection
{
/// Raised when an item has been added to the collection
event EventHandler> ItemAdded;
/// Raised when an item is removed from the collection
event EventHandler> ItemRemoved;
/// Raised when the collection is about to be cleared
///
/// This could be covered by calling ItemRemoved for each item currently
/// contained in the collection, but it is often simpler and more efficient
/// to process the clearing of the entire collection as a special operation.
///
event EventHandler Clearing;
/// Raised when the collection has been cleared of its items
event EventHandler Cleared;
}
}