using System;
using Microsoft.Extensions.Logging;
namespace MediaBrowser.Model.Tasks
{
    /// 
    /// Interface ITaskTrigger.
    /// 
    public interface ITaskTrigger
    {
        /// 
        /// Fires when the trigger condition is satisfied and the task should run.
        /// 
        event EventHandler Triggered;
        /// 
        /// Gets or sets the options of this task.
        /// 
        TaskOptions TaskOptions { get; set; }
        /// 
        /// Stars waiting for the trigger action.
        /// 
        void Start(TaskResult lastResult, ILogger logger, string taskName, bool isApplicationStartup);
        /// 
        /// Stops waiting for the trigger action.
        /// 
        void Stop();
    }
}