use core::ffi::*;
use core::ptr::NonNull;
#[cfg(feature = "objc2")]
use objc2::__framework_prelude::*;
#[cfg(feature = "objc2-foundation")]
use objc2_foundation::*;
use crate::*;
extern "C" {
#[cfg(feature = "objc2-foundation")]
pub static MAMusicHapticsManagerActiveStatusDidChangeNotification: &'static NSNotificationName;
}
#[cfg(feature = "objc2")]
extern_class!(
#[unsafe(super(NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
#[cfg(feature = "objc2")]
pub struct MAMusicHapticsManager;
);
#[cfg(feature = "objc2")]
extern_conformance!(
unsafe impl NSObjectProtocol for MAMusicHapticsManager {}
);
#[cfg(feature = "objc2")]
impl MAMusicHapticsManager {
extern_methods!(
#[unsafe(method(sharedManager))]
#[unsafe(method_family = none)]
pub unsafe fn sharedManager() -> Retained<MAMusicHapticsManager>;
#[unsafe(method(isActive))]
#[unsafe(method_family = none)]
pub unsafe fn isActive(&self) -> bool;
#[cfg(all(feature = "block2", feature = "objc2-foundation"))]
#[unsafe(method(checkHapticTrackAvailabilityForMediaMatchingCode:completionHandler:))]
#[unsafe(method_family = none)]
pub unsafe fn checkHapticTrackAvailabilityForMediaMatchingCode_completionHandler(
&self,
international_standard_recording_code: &NSString,
completion_handler: Option<&block2::DynBlock<dyn Fn(Bool)>>,
);
#[cfg(all(feature = "block2", feature = "objc2-foundation"))]
#[unsafe(method(addStatusObserver:))]
#[unsafe(method_family = none)]
pub unsafe fn addStatusObserver(
&self,
status_handler: &block2::DynBlock<dyn Fn(NonNull<NSString>, Bool)>,
) -> Option<Retained<ProtocolObject<dyn NSCopying>>>;
#[cfg(feature = "objc2-foundation")]
#[unsafe(method(removeStatusObserver:))]
#[unsafe(method_family = none)]
pub unsafe fn removeStatusObserver(
&self,
registration_token: &ProtocolObject<dyn NSCopying>,
);
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub unsafe fn new() -> Retained<Self>;
);
}