using System;
using System.Threading.Tasks;
namespace MediaBrowser.Controller.Events
{
///
/// An interface that handles eventing.
///
public interface IEventManager
{
///
/// Publishes an event.
///
/// the event arguments.
/// The type of event.
void Publish(T eventArgs)
where T : EventArgs;
///
/// Publishes an event asynchronously.
///
/// The event arguments.
/// The type of event.
/// A task representing the publishing of the event.
Task PublishAsync(T eventArgs)
where T : EventArgs;
}
}