using System.Collections.Generic;
using UnityEngine.Timeline;
namespace UnityEditor.Timeline.Actions
{
    /// 
    /// Base class for a marker action.
    /// Inherit from this class to make an action that would react on selected markers after a menu click and/or a key shortcut.
    /// 
    /// 
    /// Simple track Action example (with context menu and shortcut support).
    /// 
    /// 
    /// 
    /// To add an action as a menu item in the Timeline context menu, add  on the action class.
    /// To make an action to react to a shortcut, use the Shortcut Manager API with .
    /// 
    /// 
    [ActiveInMode(TimelineModes.Default)]
    public abstract class MarkerAction : IAction
    {
        /// 
        ///  Execute the action.
        /// 
        /// Markers that will be used for the action. 
        /// true if the action has been executed. false otherwise
        public abstract bool Execute(IEnumerable markers);
        /// 
        ///  Defines the validity of an Action for a given set of markers.
        /// 
        /// Markers that will be used for the action. 
        /// The validity of the set of markers.
        public abstract ActionValidity Validate(IEnumerable markers);
    }
}