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