#nullable disable
using System.Threading;
using MediaBrowser.Controller.Session;
using MediaBrowser.Model.SyncPlay;
namespace MediaBrowser.Controller.SyncPlay
{
    /// 
    /// Interface IGroupPlaybackRequest.
    /// 
    public interface IGroupPlaybackRequest : ISyncPlayRequest
    {
        /// 
        /// Gets the playback request type.
        /// 
        /// The playback request type.
        PlaybackRequestType Action { get; }
        /// 
        /// Applies the request to a group.
        /// 
        /// The context of the state.
        /// The current state.
        /// The session.
        /// The cancellation token.
        void Apply(IGroupStateContext context, IGroupState state, SessionInfo session, CancellationToken cancellationToken);
    }
}