using System;
using MediaBrowser.Model.Events;
using MediaBrowser.Model.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;
        /// 
        /// Stars waiting for the trigger action
        /// 
        void Start(TaskResult lastResult, ILogger logger, string taskName, bool isApplicationStartup);
        /// 
        /// Stops waiting for the trigger action
        /// 
        void Stop();
        /// 
        /// Gets or sets the execution properties of this task.
        /// 
        /// 
        /// The execution properties of this task.
        /// 
        TaskExecutionOptions TaskOptions { get; set; }
    }
}