#nullable disable
using System.Threading;
using MediaBrowser.Controller.Session;
using MediaBrowser.Model.SyncPlay;
namespace MediaBrowser.Controller.SyncPlay.PlaybackRequests
{
    /// 
    /// Class AbstractPlaybackRequest.
    /// 
    public abstract class AbstractPlaybackRequest : IGroupPlaybackRequest
    {
        /// 
        /// Initializes a new instance of the  class.
        /// 
        protected AbstractPlaybackRequest()
        {
            // Do nothing.
        }
        /// 
        public RequestType Type { get; } = RequestType.Playback;
        /// 
        public abstract PlaybackRequestType Action { get; }
        /// 
        public abstract void Apply(IGroupStateContext context, IGroupState state, SessionInfo session, CancellationToken cancellationToken);
    }
}