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 the options of this task.
        /// 
        TaskOptions TaskOptions { get; }
        /// 
        /// Stars waiting for the trigger action.
        /// 
        /// Result of the last run triggered task.
        /// The .
        /// The name of the task.
        /// Whether or not this is fired during startup.
        void Start(TaskResult? lastResult, ILogger logger, string taskName, bool isApplicationStartup);
        /// 
        /// Stops waiting for the trigger action.
        /// 
        void Stop();
    }
}