use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
extern_class!(
#[unsafe(super(NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct INVoiceShortcutCenter;
);
extern_conformance!(
unsafe impl NSObjectProtocol for INVoiceShortcutCenter {}
);
impl INVoiceShortcutCenter {
extern_methods!(
#[unsafe(method(sharedCenter))]
#[unsafe(method_family = none)]
pub unsafe fn sharedCenter() -> Retained<INVoiceShortcutCenter>;
#[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>;
#[cfg(all(feature = "INVoiceShortcut", feature = "block2"))]
#[unsafe(method(getAllVoiceShortcutsWithCompletion:))]
#[unsafe(method_family = none)]
pub unsafe fn getAllVoiceShortcutsWithCompletion(
&self,
completion_handler: &block2::DynBlock<
dyn Fn(*mut NSArray<INVoiceShortcut>, *mut NSError),
>,
);
#[cfg(all(feature = "INVoiceShortcut", feature = "block2"))]
#[unsafe(method(getVoiceShortcutWithIdentifier:completion:))]
#[unsafe(method_family = none)]
pub unsafe fn getVoiceShortcutWithIdentifier_completion(
&self,
identifier: &NSUUID,
completion_handler: &block2::DynBlock<dyn Fn(*mut INVoiceShortcut, *mut NSError)>,
);
#[cfg(feature = "INShortcut")]
#[unsafe(method(setShortcutSuggestions:))]
#[unsafe(method_family = none)]
pub unsafe fn setShortcutSuggestions(&self, suggestions: &NSArray<INShortcut>);
);
}