using System;
using System.Threading.Tasks;
namespace MediaBrowser.Controller.Plugins
{
    /// 
    /// Represents an entry point for a module in the application. This interface is scanned for automatically and
    /// provides a hook to initialize the module at application start.
    /// The entry point can additionally be flagged as a pre-startup task by implementing the
    ///  interface.
    /// 
    public interface IServerEntryPoint : IDisposable
    {
        /// 
        /// Run the initialization for this module. This method is invoked at application start.
        /// 
        /// A  representing the asynchronous operation.
        Task RunAsync();
    }
}