using System; using System.Threading.Tasks; namespace MediaBrowser.Controller.Events { /// <summary> /// An interface representing a type that consumes events of type <c>T</c>. /// </summary> /// <typeparam name="T">The type of events this consumes.</typeparam> public interface IEventConsumer<in T> where T : EventArgs { /// <summary> /// A method that is called when an event of type <c>T</c> is fired. /// </summary> /// <param name="eventArgs">The event.</param> /// <returns>A task representing the consumption of the event.</returns> Task OnEvent(T eventArgs); } }