use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use crate::*;
extern_class!(
#[unsafe(super(NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct MPRemoteCommandCenter;
);
extern_conformance!(
unsafe impl NSObjectProtocol for MPRemoteCommandCenter {}
);
impl MPRemoteCommandCenter {
extern_methods!(
#[cfg(feature = "MPRemoteCommand")]
#[unsafe(method(pauseCommand))]
#[unsafe(method_family = none)]
pub unsafe fn pauseCommand(&self) -> Retained<MPRemoteCommand>;
#[cfg(feature = "MPRemoteCommand")]
#[unsafe(method(playCommand))]
#[unsafe(method_family = none)]
pub unsafe fn playCommand(&self) -> Retained<MPRemoteCommand>;
#[cfg(feature = "MPRemoteCommand")]
#[unsafe(method(stopCommand))]
#[unsafe(method_family = none)]
pub unsafe fn stopCommand(&self) -> Retained<MPRemoteCommand>;
#[cfg(feature = "MPRemoteCommand")]
#[unsafe(method(togglePlayPauseCommand))]
#[unsafe(method_family = none)]
pub unsafe fn togglePlayPauseCommand(&self) -> Retained<MPRemoteCommand>;
#[cfg(feature = "MPRemoteCommand")]
#[unsafe(method(enableLanguageOptionCommand))]
#[unsafe(method_family = none)]
pub unsafe fn enableLanguageOptionCommand(&self) -> Retained<MPRemoteCommand>;
#[cfg(feature = "MPRemoteCommand")]
#[unsafe(method(disableLanguageOptionCommand))]
#[unsafe(method_family = none)]
pub unsafe fn disableLanguageOptionCommand(&self) -> Retained<MPRemoteCommand>;
#[cfg(feature = "MPRemoteCommand")]
#[unsafe(method(changePlaybackRateCommand))]
#[unsafe(method_family = none)]
pub unsafe fn changePlaybackRateCommand(&self) -> Retained<MPChangePlaybackRateCommand>;
#[cfg(feature = "MPRemoteCommand")]
#[unsafe(method(changeRepeatModeCommand))]
#[unsafe(method_family = none)]
pub unsafe fn changeRepeatModeCommand(&self) -> Retained<MPChangeRepeatModeCommand>;
#[cfg(feature = "MPRemoteCommand")]
#[unsafe(method(changeShuffleModeCommand))]
#[unsafe(method_family = none)]
pub unsafe fn changeShuffleModeCommand(&self) -> Retained<MPChangeShuffleModeCommand>;
#[cfg(feature = "MPRemoteCommand")]
#[unsafe(method(nextTrackCommand))]
#[unsafe(method_family = none)]
pub unsafe fn nextTrackCommand(&self) -> Retained<MPRemoteCommand>;
#[cfg(feature = "MPRemoteCommand")]
#[unsafe(method(previousTrackCommand))]
#[unsafe(method_family = none)]
pub unsafe fn previousTrackCommand(&self) -> Retained<MPRemoteCommand>;
#[cfg(feature = "MPRemoteCommand")]
#[unsafe(method(skipForwardCommand))]
#[unsafe(method_family = none)]
pub unsafe fn skipForwardCommand(&self) -> Retained<MPSkipIntervalCommand>;
#[cfg(feature = "MPRemoteCommand")]
#[unsafe(method(skipBackwardCommand))]
#[unsafe(method_family = none)]
pub unsafe fn skipBackwardCommand(&self) -> Retained<MPSkipIntervalCommand>;
#[cfg(feature = "MPRemoteCommand")]
#[unsafe(method(seekForwardCommand))]
#[unsafe(method_family = none)]
pub unsafe fn seekForwardCommand(&self) -> Retained<MPRemoteCommand>;
#[cfg(feature = "MPRemoteCommand")]
#[unsafe(method(seekBackwardCommand))]
#[unsafe(method_family = none)]
pub unsafe fn seekBackwardCommand(&self) -> Retained<MPRemoteCommand>;
#[cfg(feature = "MPRemoteCommand")]
#[unsafe(method(changePlaybackPositionCommand))]
#[unsafe(method_family = none)]
pub unsafe fn changePlaybackPositionCommand(
&self,
) -> Retained<MPChangePlaybackPositionCommand>;
#[cfg(feature = "MPRemoteCommand")]
#[unsafe(method(ratingCommand))]
#[unsafe(method_family = none)]
pub unsafe fn ratingCommand(&self) -> Retained<MPRatingCommand>;
#[cfg(feature = "MPRemoteCommand")]
#[unsafe(method(likeCommand))]
#[unsafe(method_family = none)]
pub unsafe fn likeCommand(&self) -> Retained<MPFeedbackCommand>;
#[cfg(feature = "MPRemoteCommand")]
#[unsafe(method(dislikeCommand))]
#[unsafe(method_family = none)]
pub unsafe fn dislikeCommand(&self) -> Retained<MPFeedbackCommand>;
#[cfg(feature = "MPRemoteCommand")]
#[unsafe(method(bookmarkCommand))]
#[unsafe(method_family = none)]
pub unsafe fn bookmarkCommand(&self) -> Retained<MPFeedbackCommand>;
#[unsafe(method(sharedCommandCenter))]
#[unsafe(method_family = none)]
pub unsafe fn sharedCommandCenter() -> Retained<MPRemoteCommandCenter>;
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub unsafe fn new() -> Retained<Self>;
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
);
}