pub type mount_t = *mut ::std::os::raw::c_void;
#[allow(unused_imports)]
use crate::objc::*;
#[allow(unused_imports)]
use crate::Contacts::*;
#[allow(unused_imports)]
use crate::CoreData::*;
#[allow(unused_imports)]
use crate::CoreFoundation::*;
#[allow(unused_imports)]
use crate::CoreGraphics::*;
#[allow(unused_imports)]
use crate::CoreLocation::*;
#[allow(unused_imports)]
use crate::EventKit::*;
#[allow(unused_imports)]
use crate::Foundation::*;

#[allow(unused_imports)]
use objc2::msg_send;
pub type INShortcutAvailabilityOptions = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INIntent(pub id);
impl std::ops::Deref for INIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INIntent {}
impl INIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INIntent").unwrap(), alloc) })
    }
}
impl PNSCopying for INIntent {}
impl PNSSecureCoding for INIntent {}
impl INSObject for INIntent {}
impl PNSObject for INIntent {}
impl std::convert::TryFrom<NSObject> for INIntent {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INIntent, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INIntent").unwrap()) };
        if is_kind_of {
            Ok(INIntent(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INIntent")
        }
    }
}
impl IINIntent for INIntent {}
pub trait IINIntent: Sized + std::ops::Deref {
    unsafe fn setImage_forParameterNamed_(&self, image: INImage, parameterName: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setImage : image, forParameterNamed : parameterName)
    }
    unsafe fn imageForParameterNamed_(&self, parameterName: NSString) -> INImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, imageForParameterNamed : parameterName)
    }
    unsafe fn keyImage(&self) -> INImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, keyImage)
    }
    unsafe fn identifier(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, identifier)
    }
    unsafe fn intentDescription(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, intentDescription)
    }
    unsafe fn suggestedInvocationPhrase(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, suggestedInvocationPhrase)
    }
    unsafe fn setSuggestedInvocationPhrase_(&self, suggestedInvocationPhrase: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSuggestedInvocationPhrase : suggestedInvocationPhrase)
    }
    unsafe fn shortcutAvailability(&self) -> INShortcutAvailabilityOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, shortcutAvailability)
    }
    unsafe fn setShortcutAvailability_(&self, shortcutAvailability: INShortcutAvailabilityOptions)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setShortcutAvailability : shortcutAvailability)
    }
    unsafe fn donationMetadata(&self) -> INIntentDonationMetadata
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, donationMetadata)
    }
    unsafe fn setDonationMetadata_(&self, donationMetadata: INIntentDonationMetadata)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDonationMetadata : donationMetadata)
    }
}
pub type INIntentErrorCode = NSInteger;
pub trait PINIntentHandlerProviding: Sized + std::ops::Deref {
    unsafe fn handlerForIntent_(&self, intent: INIntent) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handlerForIntent : intent)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INIntentResponse(pub id);
impl std::ops::Deref for INIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INIntentResponse {}
impl INIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INIntentResponse").unwrap(), alloc) })
    }
}
impl PNSCopying for INIntentResponse {}
impl PNSSecureCoding for INIntentResponse {}
impl INSObject for INIntentResponse {}
impl PNSObject for INIntentResponse {}
impl std::convert::TryFrom<NSObject> for INIntentResponse {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INIntentResponse, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INIntentResponse").unwrap()) };
        if is_kind_of {
            Ok(INIntentResponse(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INIntentResponse")
        }
    }
}
impl IINIntentResponse for INIntentResponse {}
pub trait IINIntentResponse: Sized + std::ops::Deref {
    unsafe fn userActivity(&self) -> NSUserActivity
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, userActivity)
    }
    unsafe fn setUserActivity_(&self, userActivity: NSUserActivity)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setUserActivity : userActivity)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INIntentResolutionResult(pub id);
impl std::ops::Deref for INIntentResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INIntentResolutionResult {}
impl INIntentResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INIntentResolutionResult").unwrap(), alloc) })
    }
}
impl INSObject for INIntentResolutionResult {}
impl PNSObject for INIntentResolutionResult {}
impl std::convert::TryFrom<NSObject> for INIntentResolutionResult {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INIntentResolutionResult, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INIntentResolutionResult").unwrap()) };
        if is_kind_of {
            Ok(INIntentResolutionResult(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INIntentResolutionResult")
        }
    }
}
impl IINIntentResolutionResult for INIntentResolutionResult {}
pub trait IINIntentResolutionResult: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn needsValue() -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INIntentResolutionResult").unwrap(), needsValue)
    }
    unsafe fn notRequired() -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INIntentResolutionResult").unwrap(), notRequired)
    }
    unsafe fn unsupported() -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INIntentResolutionResult").unwrap(), unsupported)
    }
}
impl INIntentResolutionResult_Custom for INIntentResolutionResult {}
pub trait INIntentResolutionResult_Custom: Sized + std::ops::Deref {
    unsafe fn unsupportedWithReason_(reason: NSInteger) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INIntentResolutionResult").unwrap(), unsupportedWithReason : reason)
    }
    unsafe fn confirmationRequiredWithItemToConfirm_forReason_(
        itemToConfirm: id,
        reason: NSInteger,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INIntentResolutionResult").unwrap(), confirmationRequiredWithItemToConfirm : itemToConfirm, forReason : reason)
    }
}
pub type INCallAudioRoute = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INAnswerCallIntent(pub id);
impl std::ops::Deref for INAnswerCallIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INAnswerCallIntent {}
impl INAnswerCallIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INAnswerCallIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INAnswerCallIntent {}
impl PNSCopying for INAnswerCallIntent {}
impl PNSSecureCoding for INAnswerCallIntent {}
impl From<INAnswerCallIntent> for INIntent {
    fn from(child: INAnswerCallIntent) -> INIntent {
        INIntent(child.0)
    }
}
impl std::convert::TryFrom<INIntent> for INAnswerCallIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INAnswerCallIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INAnswerCallIntent").unwrap()) };
        if is_kind_of {
            Ok(INAnswerCallIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INAnswerCallIntent")
        }
    }
}
impl INSObject for INAnswerCallIntent {}
impl PNSObject for INAnswerCallIntent {}
impl IINAnswerCallIntent for INAnswerCallIntent {}
pub trait IINAnswerCallIntent: Sized + std::ops::Deref {
    unsafe fn initWithAudioRoute_callIdentifier_(
        &self,
        audioRoute: INCallAudioRoute,
        callIdentifier: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithAudioRoute : audioRoute, callIdentifier : callIdentifier)
    }
    unsafe fn audioRoute(&self) -> INCallAudioRoute
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, audioRoute)
    }
    unsafe fn callIdentifier(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, callIdentifier)
    }
}
pub trait PINAnswerCallIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleAnswerCall_completion_(
        &self,
        intent: INAnswerCallIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleAnswerCall : intent, completion : completion)
    }
    unsafe fn confirmAnswerCall_completion_(
        &self,
        intent: INAnswerCallIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmAnswerCall : intent, completion : completion)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INHangUpCallIntent(pub id);
impl std::ops::Deref for INHangUpCallIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INHangUpCallIntent {}
impl INHangUpCallIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INHangUpCallIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INHangUpCallIntent {}
impl PNSCopying for INHangUpCallIntent {}
impl PNSSecureCoding for INHangUpCallIntent {}
impl std::convert::TryFrom<INIntent> for INHangUpCallIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INHangUpCallIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INHangUpCallIntent").unwrap()) };
        if is_kind_of {
            Ok(INHangUpCallIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INHangUpCallIntent")
        }
    }
}
impl INSObject for INHangUpCallIntent {}
impl PNSObject for INHangUpCallIntent {}
impl IINHangUpCallIntent for INHangUpCallIntent {}
pub trait IINHangUpCallIntent: Sized + std::ops::Deref {
    unsafe fn initWithCallIdentifier_(&self, callIdentifier: NSString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCallIdentifier : callIdentifier)
    }
    unsafe fn callIdentifier(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, callIdentifier)
    }
}
pub trait PINHangUpCallIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleHangUpCall_completion_(
        &self,
        intent: INHangUpCallIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleHangUpCall : intent, completion : completion)
    }
    unsafe fn confirmHangUpCall_completion_(
        &self,
        intent: INHangUpCallIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmHangUpCall : intent, completion : completion)
    }
}
pub type INCallCapabilityOptions = NSUInteger;
pub type INCallRecordType = NSInteger;
pub type INCallRecordTypeOptions = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSearchCallHistoryIntent(pub id);
impl std::ops::Deref for INSearchCallHistoryIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSearchCallHistoryIntent {}
impl INSearchCallHistoryIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSearchCallHistoryIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INSearchCallHistoryIntent {}
impl PNSCopying for INSearchCallHistoryIntent {}
impl PNSSecureCoding for INSearchCallHistoryIntent {}
impl std::convert::TryFrom<INIntent> for INSearchCallHistoryIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INSearchCallHistoryIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSearchCallHistoryIntent").unwrap()) };
        if is_kind_of {
            Ok(INSearchCallHistoryIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INSearchCallHistoryIntent")
        }
    }
}
impl INSObject for INSearchCallHistoryIntent {}
impl PNSObject for INSearchCallHistoryIntent {}
impl IINSearchCallHistoryIntent for INSearchCallHistoryIntent {}
pub trait IINSearchCallHistoryIntent: Sized + std::ops::Deref {
    unsafe fn initWithDateCreated_recipient_callCapabilities_callTypes_unseen_(
        &self,
        dateCreated: INDateComponentsRange,
        recipient: INPerson,
        callCapabilities: INCallCapabilityOptions,
        callTypes: INCallRecordTypeOptions,
        unseen: NSNumber,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithDateCreated : dateCreated, recipient : recipient, callCapabilities : callCapabilities, callTypes : callTypes, unseen : unseen)
    }
    unsafe fn dateCreated(&self) -> INDateComponentsRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, dateCreated)
    }
    unsafe fn recipient(&self) -> INPerson
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, recipient)
    }
    unsafe fn callCapabilities(&self) -> INCallCapabilityOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, callCapabilities)
    }
    unsafe fn callTypes(&self) -> INCallRecordTypeOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, callTypes)
    }
    unsafe fn unseen(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, unseen)
    }
}
pub trait PINSearchCallHistoryIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleSearchCallHistory_completion_(
        &self,
        intent: INSearchCallHistoryIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleSearchCallHistory : intent, completion : completion)
    }
    unsafe fn confirmSearchCallHistory_completion_(
        &self,
        intent: INSearchCallHistoryIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmSearchCallHistory : intent, completion : completion)
    }
    unsafe fn resolveCallTypeForSearchCallHistory_withCompletion_(
        &self,
        intent: INSearchCallHistoryIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveCallTypeForSearchCallHistory : intent, withCompletion : completion)
    }
    unsafe fn resolveDateCreatedForSearchCallHistory_withCompletion_(
        &self,
        intent: INSearchCallHistoryIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveDateCreatedForSearchCallHistory : intent, withCompletion : completion)
    }
    unsafe fn resolveRecipientForSearchCallHistory_withCompletion_(
        &self,
        intent: INSearchCallHistoryIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveRecipientForSearchCallHistory : intent, withCompletion : completion)
    }
    unsafe fn resolveCallTypesForSearchCallHistory_withCompletion_(
        &self,
        intent: INSearchCallHistoryIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveCallTypesForSearchCallHistory : intent, withCompletion : completion)
    }
    unsafe fn resolveUnseenForSearchCallHistory_withCompletion_(
        &self,
        intent: INSearchCallHistoryIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveUnseenForSearchCallHistory : intent, withCompletion : completion)
    }
}
pub type INCallDestinationType = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INStartAudioCallIntent(pub id);
impl std::ops::Deref for INStartAudioCallIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INStartAudioCallIntent {}
impl INStartAudioCallIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INStartAudioCallIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INStartAudioCallIntent {}
impl PNSCopying for INStartAudioCallIntent {}
impl PNSSecureCoding for INStartAudioCallIntent {}
impl std::convert::TryFrom<INIntent> for INStartAudioCallIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INStartAudioCallIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INStartAudioCallIntent").unwrap()) };
        if is_kind_of {
            Ok(INStartAudioCallIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INStartAudioCallIntent")
        }
    }
}
impl INSObject for INStartAudioCallIntent {}
impl PNSObject for INStartAudioCallIntent {}
impl IINStartAudioCallIntent for INStartAudioCallIntent {}
pub trait IINStartAudioCallIntent: Sized + std::ops::Deref {
    unsafe fn initWithDestinationType_contacts_(
        &self,
        destinationType: INCallDestinationType,
        contacts: NSArray,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithDestinationType : destinationType, contacts : contacts)
    }
    unsafe fn destinationType(&self) -> INCallDestinationType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, destinationType)
    }
    unsafe fn contacts(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contacts)
    }
}
pub trait PINStartAudioCallIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleStartAudioCall_completion_(
        &self,
        intent: INStartAudioCallIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleStartAudioCall : intent, completion : completion)
    }
    unsafe fn confirmStartAudioCall_completion_(
        &self,
        intent: INStartAudioCallIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmStartAudioCall : intent, completion : completion)
    }
    unsafe fn resolveDestinationTypeForStartAudioCall_withCompletion_(
        &self,
        intent: INStartAudioCallIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveDestinationTypeForStartAudioCall : intent, withCompletion : completion)
    }
    unsafe fn resolveContactsForStartAudioCall_withCompletion_(
        &self,
        intent: INStartAudioCallIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveContactsForStartAudioCall : intent, withCompletion : completion)
    }
}
pub type INCallCapability = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INStartCallIntent(pub id);
impl std::ops::Deref for INStartCallIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INStartCallIntent {}
impl INStartCallIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INStartCallIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INStartCallIntent {}
impl PNSCopying for INStartCallIntent {}
impl PNSSecureCoding for INStartCallIntent {}
impl std::convert::TryFrom<INIntent> for INStartCallIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INStartCallIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INStartCallIntent").unwrap()) };
        if is_kind_of {
            Ok(INStartCallIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INStartCallIntent")
        }
    }
}
impl INSObject for INStartCallIntent {}
impl PNSObject for INStartCallIntent {}
impl IINStartCallIntent for INStartCallIntent {}
pub trait IINStartCallIntent: Sized + std::ops::Deref {
    unsafe fn initWithCallRecordFilter_callRecordToCallBack_audioRoute_destinationType_contacts_callCapability_(
        &self,
        callRecordFilter: INCallRecordFilter,
        callRecordToCallBack: INCallRecord,
        audioRoute: INCallAudioRoute,
        destinationType: INCallDestinationType,
        contacts: NSArray,
        callCapability: INCallCapability,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCallRecordFilter : callRecordFilter, callRecordToCallBack : callRecordToCallBack, audioRoute : audioRoute, destinationType : destinationType, contacts : contacts, callCapability : callCapability)
    }
    unsafe fn callRecordFilter(&self) -> INCallRecordFilter
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, callRecordFilter)
    }
    unsafe fn callRecordToCallBack(&self) -> INCallRecord
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, callRecordToCallBack)
    }
    unsafe fn audioRoute(&self) -> INCallAudioRoute
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, audioRoute)
    }
    unsafe fn destinationType(&self) -> INCallDestinationType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, destinationType)
    }
    unsafe fn contacts(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contacts)
    }
    unsafe fn callCapability(&self) -> INCallCapability
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, callCapability)
    }
}
pub trait PINStartCallIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleStartCall_completion_(
        &self,
        intent: INStartCallIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleStartCall : intent, completion : completion)
    }
    unsafe fn confirmStartCall_completion_(
        &self,
        intent: INStartCallIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmStartCall : intent, completion : completion)
    }
    unsafe fn resolveCallRecordToCallBackForStartCall_withCompletion_(
        &self,
        intent: INStartCallIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveCallRecordToCallBackForStartCall : intent, withCompletion : completion)
    }
    unsafe fn resolveDestinationTypeForStartCall_withCompletion_(
        &self,
        intent: INStartCallIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveDestinationTypeForStartCall : intent, withCompletion : completion)
    }
    unsafe fn resolveContactsForStartCall_withCompletion_(
        &self,
        intent: INStartCallIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveContactsForStartCall : intent, withCompletion : completion)
    }
    unsafe fn resolveCallCapabilityForStartCall_withCompletion_(
        &self,
        intent: INStartCallIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveCallCapabilityForStartCall : intent, withCompletion : completion)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INStartVideoCallIntent(pub id);
impl std::ops::Deref for INStartVideoCallIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INStartVideoCallIntent {}
impl INStartVideoCallIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INStartVideoCallIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INStartVideoCallIntent {}
impl PNSCopying for INStartVideoCallIntent {}
impl PNSSecureCoding for INStartVideoCallIntent {}
impl std::convert::TryFrom<INIntent> for INStartVideoCallIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INStartVideoCallIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INStartVideoCallIntent").unwrap()) };
        if is_kind_of {
            Ok(INStartVideoCallIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INStartVideoCallIntent")
        }
    }
}
impl INSObject for INStartVideoCallIntent {}
impl PNSObject for INStartVideoCallIntent {}
impl IINStartVideoCallIntent for INStartVideoCallIntent {}
pub trait IINStartVideoCallIntent: Sized + std::ops::Deref {
    unsafe fn initWithContacts_(&self, contacts: NSArray) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithContacts : contacts)
    }
    unsafe fn contacts(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contacts)
    }
}
pub trait PINStartVideoCallIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleStartVideoCall_completion_(
        &self,
        intent: INStartVideoCallIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleStartVideoCall : intent, completion : completion)
    }
    unsafe fn confirmStartVideoCall_completion_(
        &self,
        intent: INStartVideoCallIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmStartVideoCall : intent, completion : completion)
    }
    unsafe fn resolveContactsForStartVideoCall_withCompletion_(
        &self,
        intent: INStartVideoCallIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveContactsForStartVideoCall : intent, withCompletion : completion)
    }
}
pub type INCarSignalOptions = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INActivateCarSignalIntent(pub id);
impl std::ops::Deref for INActivateCarSignalIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INActivateCarSignalIntent {}
impl INActivateCarSignalIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INActivateCarSignalIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INActivateCarSignalIntent {}
impl PNSCopying for INActivateCarSignalIntent {}
impl PNSSecureCoding for INActivateCarSignalIntent {}
impl std::convert::TryFrom<INIntent> for INActivateCarSignalIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INActivateCarSignalIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INActivateCarSignalIntent").unwrap()) };
        if is_kind_of {
            Ok(INActivateCarSignalIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INActivateCarSignalIntent")
        }
    }
}
impl INSObject for INActivateCarSignalIntent {}
impl PNSObject for INActivateCarSignalIntent {}
impl IINActivateCarSignalIntent for INActivateCarSignalIntent {}
pub trait IINActivateCarSignalIntent: Sized + std::ops::Deref {
    unsafe fn initWithCarName_signals_(
        &self,
        carName: INSpeakableString,
        signals: INCarSignalOptions,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCarName : carName, signals : signals)
    }
    unsafe fn carName(&self) -> INSpeakableString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, carName)
    }
    unsafe fn signals(&self) -> INCarSignalOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, signals)
    }
}
pub trait PINActivateCarSignalIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleActivateCarSignal_completion_(
        &self,
        intent: INActivateCarSignalIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleActivateCarSignal : intent, completion : completion)
    }
    unsafe fn confirmActivateCarSignal_completion_(
        &self,
        intent: INActivateCarSignalIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmActivateCarSignal : intent, completion : completion)
    }
    unsafe fn resolveCarNameForActivateCarSignal_withCompletion_(
        &self,
        intent: INActivateCarSignalIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveCarNameForActivateCarSignal : intent, withCompletion : completion)
    }
    unsafe fn resolveSignalsForActivateCarSignal_withCompletion_(
        &self,
        intent: INActivateCarSignalIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveSignalsForActivateCarSignal : intent, withCompletion : completion)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INGetCarLockStatusIntent(pub id);
impl std::ops::Deref for INGetCarLockStatusIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INGetCarLockStatusIntent {}
impl INGetCarLockStatusIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INGetCarLockStatusIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INGetCarLockStatusIntent {}
impl PNSCopying for INGetCarLockStatusIntent {}
impl PNSSecureCoding for INGetCarLockStatusIntent {}
impl std::convert::TryFrom<INIntent> for INGetCarLockStatusIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INGetCarLockStatusIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INGetCarLockStatusIntent").unwrap()) };
        if is_kind_of {
            Ok(INGetCarLockStatusIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INGetCarLockStatusIntent")
        }
    }
}
impl INSObject for INGetCarLockStatusIntent {}
impl PNSObject for INGetCarLockStatusIntent {}
impl IINGetCarLockStatusIntent for INGetCarLockStatusIntent {}
pub trait IINGetCarLockStatusIntent: Sized + std::ops::Deref {
    unsafe fn initWithCarName_(&self, carName: INSpeakableString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCarName : carName)
    }
    unsafe fn carName(&self) -> INSpeakableString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, carName)
    }
}
pub trait PINGetCarLockStatusIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleGetCarLockStatus_completion_(
        &self,
        intent: INGetCarLockStatusIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleGetCarLockStatus : intent, completion : completion)
    }
    unsafe fn confirmGetCarLockStatus_completion_(
        &self,
        intent: INGetCarLockStatusIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmGetCarLockStatus : intent, completion : completion)
    }
    unsafe fn resolveCarNameForGetCarLockStatus_withCompletion_(
        &self,
        intent: INGetCarLockStatusIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveCarNameForGetCarLockStatus : intent, withCompletion : completion)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INGetCarPowerLevelStatusIntent(pub id);
impl std::ops::Deref for INGetCarPowerLevelStatusIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INGetCarPowerLevelStatusIntent {}
impl INGetCarPowerLevelStatusIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INGetCarPowerLevelStatusIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INGetCarPowerLevelStatusIntent {}
impl PNSCopying for INGetCarPowerLevelStatusIntent {}
impl PNSSecureCoding for INGetCarPowerLevelStatusIntent {}
impl std::convert::TryFrom<INIntent> for INGetCarPowerLevelStatusIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INGetCarPowerLevelStatusIntent, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INGetCarPowerLevelStatusIntent").unwrap())
        };
        if is_kind_of {
            Ok(INGetCarPowerLevelStatusIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INGetCarPowerLevelStatusIntent")
        }
    }
}
impl INSObject for INGetCarPowerLevelStatusIntent {}
impl PNSObject for INGetCarPowerLevelStatusIntent {}
impl IINGetCarPowerLevelStatusIntent for INGetCarPowerLevelStatusIntent {}
pub trait IINGetCarPowerLevelStatusIntent: Sized + std::ops::Deref {
    unsafe fn initWithCarName_(&self, carName: INSpeakableString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCarName : carName)
    }
    unsafe fn carName(&self) -> INSpeakableString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, carName)
    }
}
pub trait PINGetCarPowerLevelStatusIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleGetCarPowerLevelStatus_completion_(
        &self,
        intent: INGetCarPowerLevelStatusIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleGetCarPowerLevelStatus : intent, completion : completion)
    }
    unsafe fn startSendingUpdatesForGetCarPowerLevelStatus_toObserver_(
        &self,
        intent: INGetCarPowerLevelStatusIntent,
        observer: *mut u64,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, startSendingUpdatesForGetCarPowerLevelStatus : intent, toObserver : observer)
    }
    unsafe fn stopSendingUpdatesForGetCarPowerLevelStatus_(
        &self,
        intent: INGetCarPowerLevelStatusIntent,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, stopSendingUpdatesForGetCarPowerLevelStatus : intent)
    }
    unsafe fn confirmGetCarPowerLevelStatus_completion_(
        &self,
        intent: INGetCarPowerLevelStatusIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmGetCarPowerLevelStatus : intent, completion : completion)
    }
    unsafe fn resolveCarNameForGetCarPowerLevelStatus_withCompletion_(
        &self,
        intent: INGetCarPowerLevelStatusIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveCarNameForGetCarPowerLevelStatus : intent, withCompletion : completion)
    }
}
pub trait PINGetCarPowerLevelStatusIntentResponseObserver: Sized + std::ops::Deref {
    unsafe fn getCarPowerLevelStatusResponseDidUpdate_(
        &self,
        response: INGetCarPowerLevelStatusIntentResponse,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, getCarPowerLevelStatusResponseDidUpdate : response)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INListCarsIntent(pub id);
impl std::ops::Deref for INListCarsIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INListCarsIntent {}
impl INListCarsIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INListCarsIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INListCarsIntent {}
impl PNSCopying for INListCarsIntent {}
impl PNSSecureCoding for INListCarsIntent {}
impl std::convert::TryFrom<INIntent> for INListCarsIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INListCarsIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INListCarsIntent").unwrap()) };
        if is_kind_of {
            Ok(INListCarsIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INListCarsIntent")
        }
    }
}
impl INSObject for INListCarsIntent {}
impl PNSObject for INListCarsIntent {}
impl IINListCarsIntent for INListCarsIntent {}
pub trait IINListCarsIntent: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
}
pub trait PINListCarsIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleListCars_completion_(
        &self,
        intent: INListCarsIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleListCars : intent, completion : completion)
    }
    unsafe fn confirmListCars_completion_(
        &self,
        intent: INListCarsIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmListCars : intent, completion : completion)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSaveProfileInCarIntent(pub id);
impl std::ops::Deref for INSaveProfileInCarIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSaveProfileInCarIntent {}
impl INSaveProfileInCarIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSaveProfileInCarIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INSaveProfileInCarIntent {}
impl PNSCopying for INSaveProfileInCarIntent {}
impl PNSSecureCoding for INSaveProfileInCarIntent {}
impl std::convert::TryFrom<INIntent> for INSaveProfileInCarIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INSaveProfileInCarIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSaveProfileInCarIntent").unwrap()) };
        if is_kind_of {
            Ok(INSaveProfileInCarIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INSaveProfileInCarIntent")
        }
    }
}
impl INSObject for INSaveProfileInCarIntent {}
impl PNSObject for INSaveProfileInCarIntent {}
impl IINSaveProfileInCarIntent for INSaveProfileInCarIntent {}
pub trait IINSaveProfileInCarIntent: Sized + std::ops::Deref {
    unsafe fn initWithProfileNumber_profileName_(
        &self,
        profileNumber: NSNumber,
        profileName: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithProfileNumber : profileNumber, profileName : profileName)
    }
    unsafe fn profileNumber(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, profileNumber)
    }
    unsafe fn profileName(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, profileName)
    }
}
pub trait PINSaveProfileInCarIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleSaveProfileInCar_completion_(
        &self,
        intent: INSaveProfileInCarIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleSaveProfileInCar : intent, completion : completion)
    }
    unsafe fn confirmSaveProfileInCar_completion_(
        &self,
        intent: INSaveProfileInCarIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmSaveProfileInCar : intent, completion : completion)
    }
    unsafe fn resolveProfileNumberForSaveProfileInCar_withCompletion_(
        &self,
        intent: INSaveProfileInCarIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveProfileNumberForSaveProfileInCar : intent, withCompletion : completion)
    }
    unsafe fn resolveProfileNameForSaveProfileInCar_withCompletion_(
        &self,
        intent: INSaveProfileInCarIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveProfileNameForSaveProfileInCar : intent, withCompletion : completion)
    }
}
pub type INCarAudioSource = NSInteger;
pub type INRelativeReference = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSetAudioSourceInCarIntent(pub id);
impl std::ops::Deref for INSetAudioSourceInCarIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSetAudioSourceInCarIntent {}
impl INSetAudioSourceInCarIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSetAudioSourceInCarIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INSetAudioSourceInCarIntent {}
impl PNSCopying for INSetAudioSourceInCarIntent {}
impl PNSSecureCoding for INSetAudioSourceInCarIntent {}
impl std::convert::TryFrom<INIntent> for INSetAudioSourceInCarIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INSetAudioSourceInCarIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSetAudioSourceInCarIntent").unwrap()) };
        if is_kind_of {
            Ok(INSetAudioSourceInCarIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INSetAudioSourceInCarIntent")
        }
    }
}
impl INSObject for INSetAudioSourceInCarIntent {}
impl PNSObject for INSetAudioSourceInCarIntent {}
impl IINSetAudioSourceInCarIntent for INSetAudioSourceInCarIntent {}
pub trait IINSetAudioSourceInCarIntent: Sized + std::ops::Deref {
    unsafe fn initWithAudioSource_relativeAudioSourceReference_(
        &self,
        audioSource: INCarAudioSource,
        relativeAudioSourceReference: INRelativeReference,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithAudioSource : audioSource, relativeAudioSourceReference : relativeAudioSourceReference)
    }
    unsafe fn audioSource(&self) -> INCarAudioSource
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, audioSource)
    }
    unsafe fn relativeAudioSourceReference(&self) -> INRelativeReference
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, relativeAudioSourceReference)
    }
}
pub trait PINSetAudioSourceInCarIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleSetAudioSourceInCar_completion_(
        &self,
        intent: INSetAudioSourceInCarIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleSetAudioSourceInCar : intent, completion : completion)
    }
    unsafe fn confirmSetAudioSourceInCar_completion_(
        &self,
        intent: INSetAudioSourceInCarIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmSetAudioSourceInCar : intent, completion : completion)
    }
    unsafe fn resolveAudioSourceForSetAudioSourceInCar_withCompletion_(
        &self,
        intent: INSetAudioSourceInCarIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveAudioSourceForSetAudioSourceInCar : intent, withCompletion : completion)
    }
    unsafe fn resolveRelativeAudioSourceReferenceForSetAudioSourceInCar_withCompletion_(
        &self,
        intent: INSetAudioSourceInCarIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveRelativeAudioSourceReferenceForSetAudioSourceInCar : intent, withCompletion : completion)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSetCarLockStatusIntent(pub id);
impl std::ops::Deref for INSetCarLockStatusIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSetCarLockStatusIntent {}
impl INSetCarLockStatusIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSetCarLockStatusIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INSetCarLockStatusIntent {}
impl PNSCopying for INSetCarLockStatusIntent {}
impl PNSSecureCoding for INSetCarLockStatusIntent {}
impl std::convert::TryFrom<INIntent> for INSetCarLockStatusIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INSetCarLockStatusIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSetCarLockStatusIntent").unwrap()) };
        if is_kind_of {
            Ok(INSetCarLockStatusIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INSetCarLockStatusIntent")
        }
    }
}
impl INSObject for INSetCarLockStatusIntent {}
impl PNSObject for INSetCarLockStatusIntent {}
impl IINSetCarLockStatusIntent for INSetCarLockStatusIntent {}
pub trait IINSetCarLockStatusIntent: Sized + std::ops::Deref {
    unsafe fn initWithLocked_carName_(
        &self,
        locked: NSNumber,
        carName: INSpeakableString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithLocked : locked, carName : carName)
    }
    unsafe fn locked(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, locked)
    }
    unsafe fn carName(&self) -> INSpeakableString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, carName)
    }
}
pub trait PINSetCarLockStatusIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleSetCarLockStatus_completion_(
        &self,
        intent: INSetCarLockStatusIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleSetCarLockStatus : intent, completion : completion)
    }
    unsafe fn confirmSetCarLockStatus_completion_(
        &self,
        intent: INSetCarLockStatusIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmSetCarLockStatus : intent, completion : completion)
    }
    unsafe fn resolveLockedForSetCarLockStatus_withCompletion_(
        &self,
        intent: INSetCarLockStatusIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveLockedForSetCarLockStatus : intent, withCompletion : completion)
    }
    unsafe fn resolveCarNameForSetCarLockStatus_withCompletion_(
        &self,
        intent: INSetCarLockStatusIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveCarNameForSetCarLockStatus : intent, withCompletion : completion)
    }
}
pub type INCarAirCirculationMode = NSInteger;
pub type INCarSeat = NSInteger;
pub type INRelativeSetting = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSetClimateSettingsInCarIntent(pub id);
impl std::ops::Deref for INSetClimateSettingsInCarIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSetClimateSettingsInCarIntent {}
impl INSetClimateSettingsInCarIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSetClimateSettingsInCarIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INSetClimateSettingsInCarIntent {}
impl PNSCopying for INSetClimateSettingsInCarIntent {}
impl PNSSecureCoding for INSetClimateSettingsInCarIntent {}
impl std::convert::TryFrom<INIntent> for INSetClimateSettingsInCarIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INSetClimateSettingsInCarIntent, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSetClimateSettingsInCarIntent").unwrap())
        };
        if is_kind_of {
            Ok(INSetClimateSettingsInCarIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INSetClimateSettingsInCarIntent")
        }
    }
}
impl INSObject for INSetClimateSettingsInCarIntent {}
impl PNSObject for INSetClimateSettingsInCarIntent {}
impl IINSetClimateSettingsInCarIntent for INSetClimateSettingsInCarIntent {}
pub trait IINSetClimateSettingsInCarIntent: Sized + std::ops::Deref {
    unsafe fn initWithEnableFan_enableAirConditioner_enableClimateControl_enableAutoMode_airCirculationMode_fanSpeedIndex_fanSpeedPercentage_relativeFanSpeedSetting_temperature_relativeTemperatureSetting_climateZone_carName_(
        &self,
        enableFan: NSNumber,
        enableAirConditioner: NSNumber,
        enableClimateControl: NSNumber,
        enableAutoMode: NSNumber,
        airCirculationMode: INCarAirCirculationMode,
        fanSpeedIndex: NSNumber,
        fanSpeedPercentage: NSNumber,
        relativeFanSpeedSetting: INRelativeSetting,
        temperature: NSMeasurement,
        relativeTemperatureSetting: INRelativeSetting,
        climateZone: INCarSeat,
        carName: INSpeakableString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithEnableFan : enableFan, enableAirConditioner : enableAirConditioner, enableClimateControl : enableClimateControl, enableAutoMode : enableAutoMode, airCirculationMode : airCirculationMode, fanSpeedIndex : fanSpeedIndex, fanSpeedPercentage : fanSpeedPercentage, relativeFanSpeedSetting : relativeFanSpeedSetting, temperature : temperature, relativeTemperatureSetting : relativeTemperatureSetting, climateZone : climateZone, carName : carName)
    }
    unsafe fn enableFan(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, enableFan)
    }
    unsafe fn enableAirConditioner(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, enableAirConditioner)
    }
    unsafe fn enableClimateControl(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, enableClimateControl)
    }
    unsafe fn enableAutoMode(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, enableAutoMode)
    }
    unsafe fn airCirculationMode(&self) -> INCarAirCirculationMode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, airCirculationMode)
    }
    unsafe fn fanSpeedIndex(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, fanSpeedIndex)
    }
    unsafe fn fanSpeedPercentage(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, fanSpeedPercentage)
    }
    unsafe fn relativeFanSpeedSetting(&self) -> INRelativeSetting
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, relativeFanSpeedSetting)
    }
    unsafe fn temperature(&self) -> NSMeasurement
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, temperature)
    }
    unsafe fn relativeTemperatureSetting(&self) -> INRelativeSetting
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, relativeTemperatureSetting)
    }
    unsafe fn climateZone(&self) -> INCarSeat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, climateZone)
    }
    unsafe fn carName(&self) -> INSpeakableString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, carName)
    }
}
pub trait PINSetClimateSettingsInCarIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleSetClimateSettingsInCar_completion_(
        &self,
        intent: INSetClimateSettingsInCarIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleSetClimateSettingsInCar : intent, completion : completion)
    }
    unsafe fn confirmSetClimateSettingsInCar_completion_(
        &self,
        intent: INSetClimateSettingsInCarIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmSetClimateSettingsInCar : intent, completion : completion)
    }
    unsafe fn resolveEnableFanForSetClimateSettingsInCar_withCompletion_(
        &self,
        intent: INSetClimateSettingsInCarIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveEnableFanForSetClimateSettingsInCar : intent, withCompletion : completion)
    }
    unsafe fn resolveEnableAirConditionerForSetClimateSettingsInCar_withCompletion_(
        &self,
        intent: INSetClimateSettingsInCarIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveEnableAirConditionerForSetClimateSettingsInCar : intent, withCompletion : completion)
    }
    unsafe fn resolveEnableClimateControlForSetClimateSettingsInCar_withCompletion_(
        &self,
        intent: INSetClimateSettingsInCarIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveEnableClimateControlForSetClimateSettingsInCar : intent, withCompletion : completion)
    }
    unsafe fn resolveEnableAutoModeForSetClimateSettingsInCar_withCompletion_(
        &self,
        intent: INSetClimateSettingsInCarIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveEnableAutoModeForSetClimateSettingsInCar : intent, withCompletion : completion)
    }
    unsafe fn resolveAirCirculationModeForSetClimateSettingsInCar_withCompletion_(
        &self,
        intent: INSetClimateSettingsInCarIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveAirCirculationModeForSetClimateSettingsInCar : intent, withCompletion : completion)
    }
    unsafe fn resolveFanSpeedIndexForSetClimateSettingsInCar_withCompletion_(
        &self,
        intent: INSetClimateSettingsInCarIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveFanSpeedIndexForSetClimateSettingsInCar : intent, withCompletion : completion)
    }
    unsafe fn resolveFanSpeedPercentageForSetClimateSettingsInCar_withCompletion_(
        &self,
        intent: INSetClimateSettingsInCarIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveFanSpeedPercentageForSetClimateSettingsInCar : intent, withCompletion : completion)
    }
    unsafe fn resolveRelativeFanSpeedSettingForSetClimateSettingsInCar_withCompletion_(
        &self,
        intent: INSetClimateSettingsInCarIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveRelativeFanSpeedSettingForSetClimateSettingsInCar : intent, withCompletion : completion)
    }
    unsafe fn resolveTemperatureForSetClimateSettingsInCar_withCompletion_(
        &self,
        intent: INSetClimateSettingsInCarIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveTemperatureForSetClimateSettingsInCar : intent, withCompletion : completion)
    }
    unsafe fn resolveRelativeTemperatureSettingForSetClimateSettingsInCar_withCompletion_(
        &self,
        intent: INSetClimateSettingsInCarIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveRelativeTemperatureSettingForSetClimateSettingsInCar : intent, withCompletion : completion)
    }
    unsafe fn resolveClimateZoneForSetClimateSettingsInCar_withCompletion_(
        &self,
        intent: INSetClimateSettingsInCarIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveClimateZoneForSetClimateSettingsInCar : intent, withCompletion : completion)
    }
    unsafe fn resolveCarNameForSetClimateSettingsInCar_withCompletion_(
        &self,
        intent: INSetClimateSettingsInCarIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveCarNameForSetClimateSettingsInCar : intent, withCompletion : completion)
    }
}
pub type INCarDefroster = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSetDefrosterSettingsInCarIntent(pub id);
impl std::ops::Deref for INSetDefrosterSettingsInCarIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSetDefrosterSettingsInCarIntent {}
impl INSetDefrosterSettingsInCarIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSetDefrosterSettingsInCarIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INSetDefrosterSettingsInCarIntent {}
impl PNSCopying for INSetDefrosterSettingsInCarIntent {}
impl PNSSecureCoding for INSetDefrosterSettingsInCarIntent {}
impl std::convert::TryFrom<INIntent> for INSetDefrosterSettingsInCarIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INSetDefrosterSettingsInCarIntent, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSetDefrosterSettingsInCarIntent").unwrap())
        };
        if is_kind_of {
            Ok(INSetDefrosterSettingsInCarIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INSetDefrosterSettingsInCarIntent")
        }
    }
}
impl INSObject for INSetDefrosterSettingsInCarIntent {}
impl PNSObject for INSetDefrosterSettingsInCarIntent {}
impl IINSetDefrosterSettingsInCarIntent for INSetDefrosterSettingsInCarIntent {}
pub trait IINSetDefrosterSettingsInCarIntent: Sized + std::ops::Deref {
    unsafe fn initWithEnable_defroster_carName_(
        &self,
        enable: NSNumber,
        defroster: INCarDefroster,
        carName: INSpeakableString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithEnable : enable, defroster : defroster, carName : carName)
    }
    unsafe fn enable(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, enable)
    }
    unsafe fn defroster(&self) -> INCarDefroster
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, defroster)
    }
    unsafe fn carName(&self) -> INSpeakableString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, carName)
    }
}
pub trait PINSetDefrosterSettingsInCarIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleSetDefrosterSettingsInCar_completion_(
        &self,
        intent: INSetDefrosterSettingsInCarIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleSetDefrosterSettingsInCar : intent, completion : completion)
    }
    unsafe fn confirmSetDefrosterSettingsInCar_completion_(
        &self,
        intent: INSetDefrosterSettingsInCarIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmSetDefrosterSettingsInCar : intent, completion : completion)
    }
    unsafe fn resolveEnableForSetDefrosterSettingsInCar_withCompletion_(
        &self,
        intent: INSetDefrosterSettingsInCarIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveEnableForSetDefrosterSettingsInCar : intent, withCompletion : completion)
    }
    unsafe fn resolveDefrosterForSetDefrosterSettingsInCar_withCompletion_(
        &self,
        intent: INSetDefrosterSettingsInCarIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveDefrosterForSetDefrosterSettingsInCar : intent, withCompletion : completion)
    }
    unsafe fn resolveCarNameForSetDefrosterSettingsInCar_withCompletion_(
        &self,
        intent: INSetDefrosterSettingsInCarIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveCarNameForSetDefrosterSettingsInCar : intent, withCompletion : completion)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSetProfileInCarIntent(pub id);
impl std::ops::Deref for INSetProfileInCarIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSetProfileInCarIntent {}
impl INSetProfileInCarIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSetProfileInCarIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INSetProfileInCarIntent {}
impl PNSCopying for INSetProfileInCarIntent {}
impl PNSSecureCoding for INSetProfileInCarIntent {}
impl std::convert::TryFrom<INIntent> for INSetProfileInCarIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INSetProfileInCarIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSetProfileInCarIntent").unwrap()) };
        if is_kind_of {
            Ok(INSetProfileInCarIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INSetProfileInCarIntent")
        }
    }
}
impl INSObject for INSetProfileInCarIntent {}
impl PNSObject for INSetProfileInCarIntent {}
impl IINSetProfileInCarIntent for INSetProfileInCarIntent {}
pub trait IINSetProfileInCarIntent: Sized + std::ops::Deref {
    unsafe fn initWithProfileNumber_profileName_defaultProfile_carName_(
        &self,
        profileNumber: NSNumber,
        profileName: NSString,
        defaultProfile: NSNumber,
        carName: INSpeakableString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithProfileNumber : profileNumber, profileName : profileName, defaultProfile : defaultProfile, carName : carName)
    }
    unsafe fn profileNumber(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, profileNumber)
    }
    unsafe fn profileName(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, profileName)
    }
    unsafe fn defaultProfile(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, defaultProfile)
    }
    unsafe fn carName(&self) -> INSpeakableString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, carName)
    }
}
pub trait PINSetProfileInCarIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleSetProfileInCar_completion_(
        &self,
        intent: INSetProfileInCarIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleSetProfileInCar : intent, completion : completion)
    }
    unsafe fn confirmSetProfileInCar_completion_(
        &self,
        intent: INSetProfileInCarIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmSetProfileInCar : intent, completion : completion)
    }
    unsafe fn resolveProfileNumberForSetProfileInCar_withCompletion_(
        &self,
        intent: INSetProfileInCarIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveProfileNumberForSetProfileInCar : intent, withCompletion : completion)
    }
    unsafe fn resolveProfileNameForSetProfileInCar_withCompletion_(
        &self,
        intent: INSetProfileInCarIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveProfileNameForSetProfileInCar : intent, withCompletion : completion)
    }
    unsafe fn resolveCarNameForSetProfileInCar_withCompletion_(
        &self,
        intent: INSetProfileInCarIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveCarNameForSetProfileInCar : intent, withCompletion : completion)
    }
    unsafe fn resolveDefaultProfileForSetProfileInCar_withCompletion_(
        &self,
        intent: INSetProfileInCarIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveDefaultProfileForSetProfileInCar : intent, withCompletion : completion)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSetSeatSettingsInCarIntent(pub id);
impl std::ops::Deref for INSetSeatSettingsInCarIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSetSeatSettingsInCarIntent {}
impl INSetSeatSettingsInCarIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSetSeatSettingsInCarIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INSetSeatSettingsInCarIntent {}
impl PNSCopying for INSetSeatSettingsInCarIntent {}
impl PNSSecureCoding for INSetSeatSettingsInCarIntent {}
impl std::convert::TryFrom<INIntent> for INSetSeatSettingsInCarIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INSetSeatSettingsInCarIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSetSeatSettingsInCarIntent").unwrap()) };
        if is_kind_of {
            Ok(INSetSeatSettingsInCarIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INSetSeatSettingsInCarIntent")
        }
    }
}
impl INSObject for INSetSeatSettingsInCarIntent {}
impl PNSObject for INSetSeatSettingsInCarIntent {}
impl IINSetSeatSettingsInCarIntent for INSetSeatSettingsInCarIntent {}
pub trait IINSetSeatSettingsInCarIntent: Sized + std::ops::Deref {
    unsafe fn initWithEnableHeating_enableCooling_enableMassage_seat_level_relativeLevelSetting_carName_(
        &self,
        enableHeating: NSNumber,
        enableCooling: NSNumber,
        enableMassage: NSNumber,
        seat: INCarSeat,
        level: NSNumber,
        relativeLevelSetting: INRelativeSetting,
        carName: INSpeakableString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithEnableHeating : enableHeating, enableCooling : enableCooling, enableMassage : enableMassage, seat : seat, level : level, relativeLevelSetting : relativeLevelSetting, carName : carName)
    }
    unsafe fn enableHeating(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, enableHeating)
    }
    unsafe fn enableCooling(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, enableCooling)
    }
    unsafe fn enableMassage(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, enableMassage)
    }
    unsafe fn seat(&self) -> INCarSeat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, seat)
    }
    unsafe fn level(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, level)
    }
    unsafe fn relativeLevelSetting(&self) -> INRelativeSetting
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, relativeLevelSetting)
    }
    unsafe fn carName(&self) -> INSpeakableString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, carName)
    }
}
pub trait PINSetSeatSettingsInCarIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleSetSeatSettingsInCar_completion_(
        &self,
        intent: INSetSeatSettingsInCarIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleSetSeatSettingsInCar : intent, completion : completion)
    }
    unsafe fn confirmSetSeatSettingsInCar_completion_(
        &self,
        intent: INSetSeatSettingsInCarIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmSetSeatSettingsInCar : intent, completion : completion)
    }
    unsafe fn resolveEnableHeatingForSetSeatSettingsInCar_withCompletion_(
        &self,
        intent: INSetSeatSettingsInCarIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveEnableHeatingForSetSeatSettingsInCar : intent, withCompletion : completion)
    }
    unsafe fn resolveEnableCoolingForSetSeatSettingsInCar_withCompletion_(
        &self,
        intent: INSetSeatSettingsInCarIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveEnableCoolingForSetSeatSettingsInCar : intent, withCompletion : completion)
    }
    unsafe fn resolveEnableMassageForSetSeatSettingsInCar_withCompletion_(
        &self,
        intent: INSetSeatSettingsInCarIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveEnableMassageForSetSeatSettingsInCar : intent, withCompletion : completion)
    }
    unsafe fn resolveSeatForSetSeatSettingsInCar_withCompletion_(
        &self,
        intent: INSetSeatSettingsInCarIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveSeatForSetSeatSettingsInCar : intent, withCompletion : completion)
    }
    unsafe fn resolveLevelForSetSeatSettingsInCar_withCompletion_(
        &self,
        intent: INSetSeatSettingsInCarIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveLevelForSetSeatSettingsInCar : intent, withCompletion : completion)
    }
    unsafe fn resolveRelativeLevelSettingForSetSeatSettingsInCar_withCompletion_(
        &self,
        intent: INSetSeatSettingsInCarIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveRelativeLevelSettingForSetSeatSettingsInCar : intent, withCompletion : completion)
    }
    unsafe fn resolveCarNameForSetSeatSettingsInCar_withCompletion_(
        &self,
        intent: INSetSeatSettingsInCarIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveCarNameForSetSeatSettingsInCar : intent, withCompletion : completion)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INCancelWorkoutIntent(pub id);
impl std::ops::Deref for INCancelWorkoutIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INCancelWorkoutIntent {}
impl INCancelWorkoutIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INCancelWorkoutIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INCancelWorkoutIntent {}
impl PNSCopying for INCancelWorkoutIntent {}
impl PNSSecureCoding for INCancelWorkoutIntent {}
impl std::convert::TryFrom<INIntent> for INCancelWorkoutIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INCancelWorkoutIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INCancelWorkoutIntent").unwrap()) };
        if is_kind_of {
            Ok(INCancelWorkoutIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INCancelWorkoutIntent")
        }
    }
}
impl INSObject for INCancelWorkoutIntent {}
impl PNSObject for INCancelWorkoutIntent {}
impl IINCancelWorkoutIntent for INCancelWorkoutIntent {}
pub trait IINCancelWorkoutIntent: Sized + std::ops::Deref {
    unsafe fn initWithWorkoutName_(&self, workoutName: INSpeakableString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithWorkoutName : workoutName)
    }
    unsafe fn workoutName(&self) -> INSpeakableString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, workoutName)
    }
}
pub trait PINCancelWorkoutIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleCancelWorkout_completion_(
        &self,
        intent: INCancelWorkoutIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleCancelWorkout : intent, completion : completion)
    }
    unsafe fn confirmCancelWorkout_completion_(
        &self,
        intent: INCancelWorkoutIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmCancelWorkout : intent, completion : completion)
    }
    unsafe fn resolveWorkoutNameForCancelWorkout_withCompletion_(
        &self,
        intent: INCancelWorkoutIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveWorkoutNameForCancelWorkout : intent, withCompletion : completion)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INEndWorkoutIntent(pub id);
impl std::ops::Deref for INEndWorkoutIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INEndWorkoutIntent {}
impl INEndWorkoutIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INEndWorkoutIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INEndWorkoutIntent {}
impl PNSCopying for INEndWorkoutIntent {}
impl PNSSecureCoding for INEndWorkoutIntent {}
impl std::convert::TryFrom<INIntent> for INEndWorkoutIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INEndWorkoutIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INEndWorkoutIntent").unwrap()) };
        if is_kind_of {
            Ok(INEndWorkoutIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INEndWorkoutIntent")
        }
    }
}
impl INSObject for INEndWorkoutIntent {}
impl PNSObject for INEndWorkoutIntent {}
impl IINEndWorkoutIntent for INEndWorkoutIntent {}
pub trait IINEndWorkoutIntent: Sized + std::ops::Deref {
    unsafe fn initWithWorkoutName_(&self, workoutName: INSpeakableString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithWorkoutName : workoutName)
    }
    unsafe fn workoutName(&self) -> INSpeakableString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, workoutName)
    }
}
pub trait PINEndWorkoutIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleEndWorkout_completion_(
        &self,
        intent: INEndWorkoutIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleEndWorkout : intent, completion : completion)
    }
    unsafe fn confirmEndWorkout_completion_(
        &self,
        intent: INEndWorkoutIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmEndWorkout : intent, completion : completion)
    }
    unsafe fn resolveWorkoutNameForEndWorkout_withCompletion_(
        &self,
        intent: INEndWorkoutIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveWorkoutNameForEndWorkout : intent, withCompletion : completion)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INPauseWorkoutIntent(pub id);
impl std::ops::Deref for INPauseWorkoutIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INPauseWorkoutIntent {}
impl INPauseWorkoutIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INPauseWorkoutIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INPauseWorkoutIntent {}
impl PNSCopying for INPauseWorkoutIntent {}
impl PNSSecureCoding for INPauseWorkoutIntent {}
impl std::convert::TryFrom<INIntent> for INPauseWorkoutIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INPauseWorkoutIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INPauseWorkoutIntent").unwrap()) };
        if is_kind_of {
            Ok(INPauseWorkoutIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INPauseWorkoutIntent")
        }
    }
}
impl INSObject for INPauseWorkoutIntent {}
impl PNSObject for INPauseWorkoutIntent {}
impl IINPauseWorkoutIntent for INPauseWorkoutIntent {}
pub trait IINPauseWorkoutIntent: Sized + std::ops::Deref {
    unsafe fn initWithWorkoutName_(&self, workoutName: INSpeakableString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithWorkoutName : workoutName)
    }
    unsafe fn workoutName(&self) -> INSpeakableString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, workoutName)
    }
}
pub trait PINPauseWorkoutIntentHandling: Sized + std::ops::Deref {
    unsafe fn handlePauseWorkout_completion_(
        &self,
        intent: INPauseWorkoutIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handlePauseWorkout : intent, completion : completion)
    }
    unsafe fn confirmPauseWorkout_completion_(
        &self,
        intent: INPauseWorkoutIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmPauseWorkout : intent, completion : completion)
    }
    unsafe fn resolveWorkoutNameForPauseWorkout_withCompletion_(
        &self,
        intent: INPauseWorkoutIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveWorkoutNameForPauseWorkout : intent, withCompletion : completion)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INResumeWorkoutIntent(pub id);
impl std::ops::Deref for INResumeWorkoutIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INResumeWorkoutIntent {}
impl INResumeWorkoutIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INResumeWorkoutIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INResumeWorkoutIntent {}
impl PNSCopying for INResumeWorkoutIntent {}
impl PNSSecureCoding for INResumeWorkoutIntent {}
impl std::convert::TryFrom<INIntent> for INResumeWorkoutIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INResumeWorkoutIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INResumeWorkoutIntent").unwrap()) };
        if is_kind_of {
            Ok(INResumeWorkoutIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INResumeWorkoutIntent")
        }
    }
}
impl INSObject for INResumeWorkoutIntent {}
impl PNSObject for INResumeWorkoutIntent {}
impl IINResumeWorkoutIntent for INResumeWorkoutIntent {}
pub trait IINResumeWorkoutIntent: Sized + std::ops::Deref {
    unsafe fn initWithWorkoutName_(&self, workoutName: INSpeakableString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithWorkoutName : workoutName)
    }
    unsafe fn workoutName(&self) -> INSpeakableString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, workoutName)
    }
}
pub trait PINResumeWorkoutIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleResumeWorkout_completion_(
        &self,
        intent: INResumeWorkoutIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleResumeWorkout : intent, completion : completion)
    }
    unsafe fn confirmResumeWorkout_completion_(
        &self,
        intent: INResumeWorkoutIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmResumeWorkout : intent, completion : completion)
    }
    unsafe fn resolveWorkoutNameForResumeWorkout_withCompletion_(
        &self,
        intent: INResumeWorkoutIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveWorkoutNameForResumeWorkout : intent, withCompletion : completion)
    }
}
pub type INWorkoutGoalUnitType = NSInteger;
pub type INWorkoutLocationType = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INStartWorkoutIntent(pub id);
impl std::ops::Deref for INStartWorkoutIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INStartWorkoutIntent {}
impl INStartWorkoutIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INStartWorkoutIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INStartWorkoutIntent {}
impl PNSCopying for INStartWorkoutIntent {}
impl PNSSecureCoding for INStartWorkoutIntent {}
impl std::convert::TryFrom<INIntent> for INStartWorkoutIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INStartWorkoutIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INStartWorkoutIntent").unwrap()) };
        if is_kind_of {
            Ok(INStartWorkoutIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INStartWorkoutIntent")
        }
    }
}
impl INSObject for INStartWorkoutIntent {}
impl PNSObject for INStartWorkoutIntent {}
impl IINStartWorkoutIntent for INStartWorkoutIntent {}
pub trait IINStartWorkoutIntent: Sized + std::ops::Deref {
    unsafe fn initWithWorkoutName_goalValue_workoutGoalUnitType_workoutLocationType_isOpenEnded_(
        &self,
        workoutName: INSpeakableString,
        goalValue: NSNumber,
        workoutGoalUnitType: INWorkoutGoalUnitType,
        workoutLocationType: INWorkoutLocationType,
        isOpenEnded: NSNumber,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithWorkoutName : workoutName, goalValue : goalValue, workoutGoalUnitType : workoutGoalUnitType, workoutLocationType : workoutLocationType, isOpenEnded : isOpenEnded)
    }
    unsafe fn workoutName(&self) -> INSpeakableString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, workoutName)
    }
    unsafe fn goalValue(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, goalValue)
    }
    unsafe fn workoutGoalUnitType(&self) -> INWorkoutGoalUnitType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, workoutGoalUnitType)
    }
    unsafe fn workoutLocationType(&self) -> INWorkoutLocationType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, workoutLocationType)
    }
    unsafe fn isOpenEnded(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isOpenEnded)
    }
}
pub trait PINStartWorkoutIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleStartWorkout_completion_(
        &self,
        intent: INStartWorkoutIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleStartWorkout : intent, completion : completion)
    }
    unsafe fn confirmStartWorkout_completion_(
        &self,
        intent: INStartWorkoutIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmStartWorkout : intent, completion : completion)
    }
    unsafe fn resolveWorkoutNameForStartWorkout_withCompletion_(
        &self,
        intent: INStartWorkoutIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveWorkoutNameForStartWorkout : intent, withCompletion : completion)
    }
    unsafe fn resolveGoalValueForStartWorkout_withCompletion_(
        &self,
        intent: INStartWorkoutIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveGoalValueForStartWorkout : intent, withCompletion : completion)
    }
    unsafe fn resolveWorkoutGoalUnitTypeForStartWorkout_withCompletion_(
        &self,
        intent: INStartWorkoutIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveWorkoutGoalUnitTypeForStartWorkout : intent, withCompletion : completion)
    }
    unsafe fn resolveWorkoutLocationTypeForStartWorkout_withCompletion_(
        &self,
        intent: INStartWorkoutIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveWorkoutLocationTypeForStartWorkout : intent, withCompletion : completion)
    }
    unsafe fn resolveIsOpenEndedForStartWorkout_withCompletion_(
        &self,
        intent: INStartWorkoutIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveIsOpenEndedForStartWorkout : intent, withCompletion : completion)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INShareFocusStatusIntent(pub id);
impl std::ops::Deref for INShareFocusStatusIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INShareFocusStatusIntent {}
impl INShareFocusStatusIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INShareFocusStatusIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INShareFocusStatusIntent {}
impl PNSCopying for INShareFocusStatusIntent {}
impl PNSSecureCoding for INShareFocusStatusIntent {}
impl std::convert::TryFrom<INIntent> for INShareFocusStatusIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INShareFocusStatusIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INShareFocusStatusIntent").unwrap()) };
        if is_kind_of {
            Ok(INShareFocusStatusIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INShareFocusStatusIntent")
        }
    }
}
impl INSObject for INShareFocusStatusIntent {}
impl PNSObject for INShareFocusStatusIntent {}
impl IINShareFocusStatusIntent for INShareFocusStatusIntent {}
pub trait IINShareFocusStatusIntent: Sized + std::ops::Deref {
    unsafe fn initWithFocusStatus_(&self, focusStatus: INFocusStatus) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithFocusStatus : focusStatus)
    }
    unsafe fn focusStatus(&self) -> INFocusStatus
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, focusStatus)
    }
}
pub trait PINShareFocusStatusIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleShareFocusStatus_completion_(
        &self,
        intent: INShareFocusStatusIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleShareFocusStatus : intent, completion : completion)
    }
    unsafe fn confirmShareFocusStatus_completion_(
        &self,
        intent: INShareFocusStatusIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmShareFocusStatus : intent, completion : completion)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INAddMediaIntent(pub id);
impl std::ops::Deref for INAddMediaIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INAddMediaIntent {}
impl INAddMediaIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INAddMediaIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INAddMediaIntent {}
impl PNSCopying for INAddMediaIntent {}
impl PNSSecureCoding for INAddMediaIntent {}
impl std::convert::TryFrom<INIntent> for INAddMediaIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INAddMediaIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INAddMediaIntent").unwrap()) };
        if is_kind_of {
            Ok(INAddMediaIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INAddMediaIntent")
        }
    }
}
impl INSObject for INAddMediaIntent {}
impl PNSObject for INAddMediaIntent {}
impl IINAddMediaIntent for INAddMediaIntent {}
pub trait IINAddMediaIntent: Sized + std::ops::Deref {
    unsafe fn initWithMediaItems_mediaSearch_mediaDestination_(
        &self,
        mediaItems: NSArray,
        mediaSearch: INMediaSearch,
        mediaDestination: INMediaDestination,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithMediaItems : mediaItems, mediaSearch : mediaSearch, mediaDestination : mediaDestination)
    }
    unsafe fn mediaItems(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, mediaItems)
    }
    unsafe fn mediaSearch(&self) -> INMediaSearch
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, mediaSearch)
    }
    unsafe fn mediaDestination(&self) -> INMediaDestination
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, mediaDestination)
    }
}
pub trait PINAddMediaIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleAddMedia_completion_(
        &self,
        intent: INAddMediaIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleAddMedia : intent, completion : completion)
    }
    unsafe fn confirmAddMedia_completion_(
        &self,
        intent: INAddMediaIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmAddMedia : intent, completion : completion)
    }
    unsafe fn resolveMediaItemsForAddMedia_withCompletion_(
        &self,
        intent: INAddMediaIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveMediaItemsForAddMedia : intent, withCompletion : completion)
    }
    unsafe fn resolveMediaDestinationForAddMedia_withCompletion_(
        &self,
        intent: INAddMediaIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveMediaDestinationForAddMedia : intent, withCompletion : completion)
    }
}
pub type INPlaybackQueueLocation = NSInteger;
pub type INPlaybackRepeatMode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INPlayMediaIntent(pub id);
impl std::ops::Deref for INPlayMediaIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INPlayMediaIntent {}
impl INPlayMediaIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INPlayMediaIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INPlayMediaIntent {}
impl PNSCopying for INPlayMediaIntent {}
impl PNSSecureCoding for INPlayMediaIntent {}
impl std::convert::TryFrom<INIntent> for INPlayMediaIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INPlayMediaIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INPlayMediaIntent").unwrap()) };
        if is_kind_of {
            Ok(INPlayMediaIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INPlayMediaIntent")
        }
    }
}
impl INSObject for INPlayMediaIntent {}
impl PNSObject for INPlayMediaIntent {}
impl IINPlayMediaIntent for INPlayMediaIntent {}
pub trait IINPlayMediaIntent: Sized + std::ops::Deref {
    unsafe fn initWithMediaItems_mediaContainer_playShuffled_playbackRepeatMode_resumePlayback_playbackQueueLocation_playbackSpeed_mediaSearch_(
        &self,
        mediaItems: NSArray,
        mediaContainer: INMediaItem,
        playShuffled: NSNumber,
        playbackRepeatMode: INPlaybackRepeatMode,
        resumePlayback: NSNumber,
        playbackQueueLocation: INPlaybackQueueLocation,
        playbackSpeed: NSNumber,
        mediaSearch: INMediaSearch,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithMediaItems : mediaItems, mediaContainer : mediaContainer, playShuffled : playShuffled, playbackRepeatMode : playbackRepeatMode, resumePlayback : resumePlayback, playbackQueueLocation : playbackQueueLocation, playbackSpeed : playbackSpeed, mediaSearch : mediaSearch)
    }
    unsafe fn mediaItems(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, mediaItems)
    }
    unsafe fn mediaContainer(&self) -> INMediaItem
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, mediaContainer)
    }
    unsafe fn playShuffled(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, playShuffled)
    }
    unsafe fn playbackRepeatMode(&self) -> INPlaybackRepeatMode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, playbackRepeatMode)
    }
    unsafe fn resumePlayback(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, resumePlayback)
    }
    unsafe fn playbackQueueLocation(&self) -> INPlaybackQueueLocation
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, playbackQueueLocation)
    }
    unsafe fn playbackSpeed(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, playbackSpeed)
    }
    unsafe fn mediaSearch(&self) -> INMediaSearch
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, mediaSearch)
    }
}
pub trait PINPlayMediaIntentHandling: Sized + std::ops::Deref {
    unsafe fn handlePlayMedia_completion_(
        &self,
        intent: INPlayMediaIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handlePlayMedia : intent, completion : completion)
    }
    unsafe fn confirmPlayMedia_completion_(
        &self,
        intent: INPlayMediaIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmPlayMedia : intent, completion : completion)
    }
    unsafe fn resolveMediaItemsForPlayMedia_withCompletion_(
        &self,
        intent: INPlayMediaIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveMediaItemsForPlayMedia : intent, withCompletion : completion)
    }
    unsafe fn resolvePlayShuffledForPlayMedia_withCompletion_(
        &self,
        intent: INPlayMediaIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolvePlayShuffledForPlayMedia : intent, withCompletion : completion)
    }
    unsafe fn resolvePlaybackRepeatModeForPlayMedia_withCompletion_(
        &self,
        intent: INPlayMediaIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolvePlaybackRepeatModeForPlayMedia : intent, withCompletion : completion)
    }
    unsafe fn resolveResumePlaybackForPlayMedia_withCompletion_(
        &self,
        intent: INPlayMediaIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveResumePlaybackForPlayMedia : intent, withCompletion : completion)
    }
    unsafe fn resolvePlaybackQueueLocationForPlayMedia_withCompletion_(
        &self,
        intent: INPlayMediaIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolvePlaybackQueueLocationForPlayMedia : intent, withCompletion : completion)
    }
    unsafe fn resolvePlaybackSpeedForPlayMedia_withCompletion_(
        &self,
        intent: INPlayMediaIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolvePlaybackSpeedForPlayMedia : intent, withCompletion : completion)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSearchForMediaIntent(pub id);
impl std::ops::Deref for INSearchForMediaIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSearchForMediaIntent {}
impl INSearchForMediaIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSearchForMediaIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INSearchForMediaIntent {}
impl PNSCopying for INSearchForMediaIntent {}
impl PNSSecureCoding for INSearchForMediaIntent {}
impl std::convert::TryFrom<INIntent> for INSearchForMediaIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INSearchForMediaIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSearchForMediaIntent").unwrap()) };
        if is_kind_of {
            Ok(INSearchForMediaIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INSearchForMediaIntent")
        }
    }
}
impl INSObject for INSearchForMediaIntent {}
impl PNSObject for INSearchForMediaIntent {}
impl IINSearchForMediaIntent for INSearchForMediaIntent {}
pub trait IINSearchForMediaIntent: Sized + std::ops::Deref {
    unsafe fn initWithMediaItems_mediaSearch_(
        &self,
        mediaItems: NSArray,
        mediaSearch: INMediaSearch,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithMediaItems : mediaItems, mediaSearch : mediaSearch)
    }
    unsafe fn mediaItems(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, mediaItems)
    }
    unsafe fn mediaSearch(&self) -> INMediaSearch
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, mediaSearch)
    }
}
pub trait PINSearchForMediaIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleSearchForMedia_completion_(
        &self,
        intent: INSearchForMediaIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleSearchForMedia : intent, completion : completion)
    }
    unsafe fn confirmSearchForMedia_completion_(
        &self,
        intent: INSearchForMediaIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmSearchForMedia : intent, completion : completion)
    }
    unsafe fn resolveMediaItemsForSearchForMedia_withCompletion_(
        &self,
        intent: INSearchForMediaIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveMediaItemsForSearchForMedia : intent, withCompletion : completion)
    }
}
pub type INMediaAffinityType = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INUpdateMediaAffinityIntent(pub id);
impl std::ops::Deref for INUpdateMediaAffinityIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INUpdateMediaAffinityIntent {}
impl INUpdateMediaAffinityIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INUpdateMediaAffinityIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INUpdateMediaAffinityIntent {}
impl PNSCopying for INUpdateMediaAffinityIntent {}
impl PNSSecureCoding for INUpdateMediaAffinityIntent {}
impl std::convert::TryFrom<INIntent> for INUpdateMediaAffinityIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INUpdateMediaAffinityIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INUpdateMediaAffinityIntent").unwrap()) };
        if is_kind_of {
            Ok(INUpdateMediaAffinityIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INUpdateMediaAffinityIntent")
        }
    }
}
impl INSObject for INUpdateMediaAffinityIntent {}
impl PNSObject for INUpdateMediaAffinityIntent {}
impl IINUpdateMediaAffinityIntent for INUpdateMediaAffinityIntent {}
pub trait IINUpdateMediaAffinityIntent: Sized + std::ops::Deref {
    unsafe fn initWithMediaItems_mediaSearch_affinityType_(
        &self,
        mediaItems: NSArray,
        mediaSearch: INMediaSearch,
        affinityType: INMediaAffinityType,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithMediaItems : mediaItems, mediaSearch : mediaSearch, affinityType : affinityType)
    }
    unsafe fn mediaItems(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, mediaItems)
    }
    unsafe fn mediaSearch(&self) -> INMediaSearch
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, mediaSearch)
    }
    unsafe fn affinityType(&self) -> INMediaAffinityType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, affinityType)
    }
}
pub trait PINUpdateMediaAffinityIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleUpdateMediaAffinity_completion_(
        &self,
        intent: INUpdateMediaAffinityIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleUpdateMediaAffinity : intent, completion : completion)
    }
    unsafe fn confirmUpdateMediaAffinity_completion_(
        &self,
        intent: INUpdateMediaAffinityIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmUpdateMediaAffinity : intent, completion : completion)
    }
    unsafe fn resolveMediaItemsForUpdateMediaAffinity_withCompletion_(
        &self,
        intent: INUpdateMediaAffinityIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveMediaItemsForUpdateMediaAffinity : intent, withCompletion : completion)
    }
    unsafe fn resolveAffinityTypeForUpdateMediaAffinity_withCompletion_(
        &self,
        intent: INUpdateMediaAffinityIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveAffinityTypeForUpdateMediaAffinity : intent, withCompletion : completion)
    }
}
pub type INRadioType = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSetRadioStationIntent(pub id);
impl std::ops::Deref for INSetRadioStationIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSetRadioStationIntent {}
impl INSetRadioStationIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSetRadioStationIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INSetRadioStationIntent {}
impl PNSCopying for INSetRadioStationIntent {}
impl PNSSecureCoding for INSetRadioStationIntent {}
impl std::convert::TryFrom<INIntent> for INSetRadioStationIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INSetRadioStationIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSetRadioStationIntent").unwrap()) };
        if is_kind_of {
            Ok(INSetRadioStationIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INSetRadioStationIntent")
        }
    }
}
impl INSObject for INSetRadioStationIntent {}
impl PNSObject for INSetRadioStationIntent {}
impl IINSetRadioStationIntent for INSetRadioStationIntent {}
pub trait IINSetRadioStationIntent: Sized + std::ops::Deref {
    unsafe fn initWithRadioType_frequency_stationName_channel_presetNumber_(
        &self,
        radioType: INRadioType,
        frequency: NSNumber,
        stationName: NSString,
        channel: NSString,
        presetNumber: NSNumber,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithRadioType : radioType, frequency : frequency, stationName : stationName, channel : channel, presetNumber : presetNumber)
    }
    unsafe fn radioType(&self) -> INRadioType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, radioType)
    }
    unsafe fn frequency(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, frequency)
    }
    unsafe fn stationName(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, stationName)
    }
    unsafe fn channel(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, channel)
    }
    unsafe fn presetNumber(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, presetNumber)
    }
}
pub trait PINSetRadioStationIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleSetRadioStation_completion_(
        &self,
        intent: INSetRadioStationIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleSetRadioStation : intent, completion : completion)
    }
    unsafe fn confirmSetRadioStation_completion_(
        &self,
        intent: INSetRadioStationIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmSetRadioStation : intent, completion : completion)
    }
    unsafe fn resolveRadioTypeForSetRadioStation_withCompletion_(
        &self,
        intent: INSetRadioStationIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveRadioTypeForSetRadioStation : intent, withCompletion : completion)
    }
    unsafe fn resolveFrequencyForSetRadioStation_withCompletion_(
        &self,
        intent: INSetRadioStationIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveFrequencyForSetRadioStation : intent, withCompletion : completion)
    }
    unsafe fn resolveStationNameForSetRadioStation_withCompletion_(
        &self,
        intent: INSetRadioStationIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveStationNameForSetRadioStation : intent, withCompletion : completion)
    }
    unsafe fn resolveChannelForSetRadioStation_withCompletion_(
        &self,
        intent: INSetRadioStationIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveChannelForSetRadioStation : intent, withCompletion : completion)
    }
    unsafe fn resolvePresetNumberForSetRadioStation_withCompletion_(
        &self,
        intent: INSetRadioStationIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolvePresetNumberForSetRadioStation : intent, withCompletion : completion)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INEditMessageIntent(pub id);
impl std::ops::Deref for INEditMessageIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INEditMessageIntent {}
impl INEditMessageIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INEditMessageIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INEditMessageIntent {}
impl PNSCopying for INEditMessageIntent {}
impl PNSSecureCoding for INEditMessageIntent {}
impl std::convert::TryFrom<INIntent> for INEditMessageIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INEditMessageIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INEditMessageIntent").unwrap()) };
        if is_kind_of {
            Ok(INEditMessageIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INEditMessageIntent")
        }
    }
}
impl INSObject for INEditMessageIntent {}
impl PNSObject for INEditMessageIntent {}
impl IINEditMessageIntent for INEditMessageIntent {}
pub trait IINEditMessageIntent: Sized + std::ops::Deref {
    unsafe fn initWithMessageIdentifier_editedContent_(
        &self,
        messageIdentifier: NSString,
        editedContent: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithMessageIdentifier : messageIdentifier, editedContent : editedContent)
    }
    unsafe fn messageIdentifier(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, messageIdentifier)
    }
    unsafe fn editedContent(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, editedContent)
    }
}
pub trait PINEditMessageIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleEditMessage_completion_(
        &self,
        intent: INEditMessageIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleEditMessage : intent, completion : completion)
    }
    unsafe fn confirmEditMessage_completion_(
        &self,
        intent: INEditMessageIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmEditMessage : intent, completion : completion)
    }
    unsafe fn resolveEditedContentForEditMessage_withCompletion_(
        &self,
        intent: INEditMessageIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveEditedContentForEditMessage : intent, withCompletion : completion)
    }
}
pub type INConditionalOperator = NSInteger;
pub type INMessageAttributeOptions = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSearchForMessagesIntent(pub id);
impl std::ops::Deref for INSearchForMessagesIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSearchForMessagesIntent {}
impl INSearchForMessagesIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSearchForMessagesIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INSearchForMessagesIntent {}
impl PNSCopying for INSearchForMessagesIntent {}
impl PNSSecureCoding for INSearchForMessagesIntent {}
impl std::convert::TryFrom<INIntent> for INSearchForMessagesIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INSearchForMessagesIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSearchForMessagesIntent").unwrap()) };
        if is_kind_of {
            Ok(INSearchForMessagesIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INSearchForMessagesIntent")
        }
    }
}
impl INSObject for INSearchForMessagesIntent {}
impl PNSObject for INSearchForMessagesIntent {}
impl IINSearchForMessagesIntent for INSearchForMessagesIntent {}
pub trait IINSearchForMessagesIntent: Sized + std::ops::Deref {
    unsafe fn initWithRecipients_senders_searchTerms_attributes_dateTimeRange_identifiers_notificationIdentifiers_speakableGroupNames_conversationIdentifiers_(
        &self,
        recipients: NSArray,
        senders: NSArray,
        searchTerms: NSArray,
        attributes: INMessageAttributeOptions,
        dateTimeRange: INDateComponentsRange,
        identifiers: NSArray,
        notificationIdentifiers: NSArray,
        speakableGroupNames: NSArray,
        conversationIdentifiers: NSArray,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithRecipients : recipients, senders : senders, searchTerms : searchTerms, attributes : attributes, dateTimeRange : dateTimeRange, identifiers : identifiers, notificationIdentifiers : notificationIdentifiers, speakableGroupNames : speakableGroupNames, conversationIdentifiers : conversationIdentifiers)
    }
    unsafe fn recipients(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, recipients)
    }
    unsafe fn recipientsOperator(&self) -> INConditionalOperator
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, recipientsOperator)
    }
    unsafe fn senders(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, senders)
    }
    unsafe fn sendersOperator(&self) -> INConditionalOperator
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sendersOperator)
    }
    unsafe fn searchTerms(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, searchTerms)
    }
    unsafe fn searchTermsOperator(&self) -> INConditionalOperator
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, searchTermsOperator)
    }
    unsafe fn attributes(&self) -> INMessageAttributeOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, attributes)
    }
    unsafe fn dateTimeRange(&self) -> INDateComponentsRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, dateTimeRange)
    }
    unsafe fn identifiers(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, identifiers)
    }
    unsafe fn identifiersOperator(&self) -> INConditionalOperator
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, identifiersOperator)
    }
    unsafe fn notificationIdentifiers(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, notificationIdentifiers)
    }
    unsafe fn notificationIdentifiersOperator(&self) -> INConditionalOperator
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, notificationIdentifiersOperator)
    }
    unsafe fn speakableGroupNames(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, speakableGroupNames)
    }
    unsafe fn speakableGroupNamesOperator(&self) -> INConditionalOperator
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, speakableGroupNamesOperator)
    }
    unsafe fn conversationIdentifiers(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, conversationIdentifiers)
    }
    unsafe fn conversationIdentifiersOperator(&self) -> INConditionalOperator
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, conversationIdentifiersOperator)
    }
}
pub trait PINSearchForMessagesIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleSearchForMessages_completion_(
        &self,
        intent: INSearchForMessagesIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleSearchForMessages : intent, completion : completion)
    }
    unsafe fn confirmSearchForMessages_completion_(
        &self,
        intent: INSearchForMessagesIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmSearchForMessages : intent, completion : completion)
    }
    unsafe fn resolveRecipientsForSearchForMessages_withCompletion_(
        &self,
        intent: INSearchForMessagesIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveRecipientsForSearchForMessages : intent, withCompletion : completion)
    }
    unsafe fn resolveSendersForSearchForMessages_withCompletion_(
        &self,
        intent: INSearchForMessagesIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveSendersForSearchForMessages : intent, withCompletion : completion)
    }
    unsafe fn resolveAttributesForSearchForMessages_withCompletion_(
        &self,
        intent: INSearchForMessagesIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveAttributesForSearchForMessages : intent, withCompletion : completion)
    }
    unsafe fn resolveDateTimeRangeForSearchForMessages_withCompletion_(
        &self,
        intent: INSearchForMessagesIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveDateTimeRangeForSearchForMessages : intent, withCompletion : completion)
    }
    unsafe fn resolveGroupNamesForSearchForMessages_withCompletion_(
        &self,
        intent: INSearchForMessagesIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveGroupNamesForSearchForMessages : intent, withCompletion : completion)
    }
    unsafe fn resolveSpeakableGroupNamesForSearchForMessages_withCompletion_(
        &self,
        intent: INSearchForMessagesIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveSpeakableGroupNamesForSearchForMessages : intent, withCompletion : completion)
    }
}
pub type INOutgoingMessageType = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSendMessageIntent(pub id);
impl std::ops::Deref for INSendMessageIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSendMessageIntent {}
impl INSendMessageIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSendMessageIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INSendMessageIntent {}
impl PNSCopying for INSendMessageIntent {}
impl PNSSecureCoding for INSendMessageIntent {}
impl std::convert::TryFrom<INIntent> for INSendMessageIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INSendMessageIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSendMessageIntent").unwrap()) };
        if is_kind_of {
            Ok(INSendMessageIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INSendMessageIntent")
        }
    }
}
impl INSObject for INSendMessageIntent {}
impl PNSObject for INSendMessageIntent {}
impl IINSendMessageIntent for INSendMessageIntent {}
pub trait IINSendMessageIntent: Sized + std::ops::Deref {
    unsafe fn initWithRecipients_outgoingMessageType_content_speakableGroupName_conversationIdentifier_serviceName_sender_attachments_(
        &self,
        recipients: NSArray,
        outgoingMessageType: INOutgoingMessageType,
        content: NSString,
        speakableGroupName: INSpeakableString,
        conversationIdentifier: NSString,
        serviceName: NSString,
        sender: INPerson,
        attachments: NSArray,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithRecipients : recipients, outgoingMessageType : outgoingMessageType, content : content, speakableGroupName : speakableGroupName, conversationIdentifier : conversationIdentifier, serviceName : serviceName, sender : sender, attachments : attachments)
    }
    unsafe fn recipients(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, recipients)
    }
    unsafe fn outgoingMessageType(&self) -> INOutgoingMessageType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, outgoingMessageType)
    }
    unsafe fn content(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, content)
    }
    unsafe fn speakableGroupName(&self) -> INSpeakableString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, speakableGroupName)
    }
    unsafe fn conversationIdentifier(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, conversationIdentifier)
    }
    unsafe fn serviceName(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, serviceName)
    }
    unsafe fn sender(&self) -> INPerson
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sender)
    }
    unsafe fn attachments(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, attachments)
    }
}
pub trait PINSendMessageIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleSendMessage_completion_(
        &self,
        intent: INSendMessageIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleSendMessage : intent, completion : completion)
    }
    unsafe fn confirmSendMessage_completion_(
        &self,
        intent: INSendMessageIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmSendMessage : intent, completion : completion)
    }
    unsafe fn resolveRecipientsForSendMessage_withCompletion_(
        &self,
        intent: INSendMessageIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveRecipientsForSendMessage : intent, withCompletion : completion)
    }
    unsafe fn resolveRecipientsForSendMessage_completion_(
        &self,
        intent: INSendMessageIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveRecipientsForSendMessage : intent, completion : completion)
    }
    unsafe fn resolveGroupNameForSendMessage_withCompletion_(
        &self,
        intent: INSendMessageIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveGroupNameForSendMessage : intent, withCompletion : completion)
    }
    unsafe fn resolveOutgoingMessageTypeForSendMessage_withCompletion_(
        &self,
        intent: INSendMessageIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveOutgoingMessageTypeForSendMessage : intent, withCompletion : completion)
    }
    unsafe fn resolveContentForSendMessage_withCompletion_(
        &self,
        intent: INSendMessageIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveContentForSendMessage : intent, withCompletion : completion)
    }
    unsafe fn resolveSpeakableGroupNameForSendMessage_withCompletion_(
        &self,
        intent: INSendMessageIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveSpeakableGroupNameForSendMessage : intent, withCompletion : completion)
    }
}
pub type INMessageAttribute = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSetMessageAttributeIntent(pub id);
impl std::ops::Deref for INSetMessageAttributeIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSetMessageAttributeIntent {}
impl INSetMessageAttributeIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSetMessageAttributeIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INSetMessageAttributeIntent {}
impl PNSCopying for INSetMessageAttributeIntent {}
impl PNSSecureCoding for INSetMessageAttributeIntent {}
impl std::convert::TryFrom<INIntent> for INSetMessageAttributeIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INSetMessageAttributeIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSetMessageAttributeIntent").unwrap()) };
        if is_kind_of {
            Ok(INSetMessageAttributeIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INSetMessageAttributeIntent")
        }
    }
}
impl INSObject for INSetMessageAttributeIntent {}
impl PNSObject for INSetMessageAttributeIntent {}
impl IINSetMessageAttributeIntent for INSetMessageAttributeIntent {}
pub trait IINSetMessageAttributeIntent: Sized + std::ops::Deref {
    unsafe fn initWithIdentifiers_attribute_(
        &self,
        identifiers: NSArray,
        attribute: INMessageAttribute,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithIdentifiers : identifiers, attribute : attribute)
    }
    unsafe fn identifiers(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, identifiers)
    }
    unsafe fn attribute(&self) -> INMessageAttribute
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, attribute)
    }
}
pub trait PINSetMessageAttributeIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleSetMessageAttribute_completion_(
        &self,
        intent: INSetMessageAttributeIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleSetMessageAttribute : intent, completion : completion)
    }
    unsafe fn confirmSetMessageAttribute_completion_(
        &self,
        intent: INSetMessageAttributeIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmSetMessageAttribute : intent, completion : completion)
    }
    unsafe fn resolveAttributeForSetMessageAttribute_withCompletion_(
        &self,
        intent: INSetMessageAttributeIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveAttributeForSetMessageAttribute : intent, withCompletion : completion)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INUnsendMessagesIntent(pub id);
impl std::ops::Deref for INUnsendMessagesIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INUnsendMessagesIntent {}
impl INUnsendMessagesIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INUnsendMessagesIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INUnsendMessagesIntent {}
impl PNSCopying for INUnsendMessagesIntent {}
impl PNSSecureCoding for INUnsendMessagesIntent {}
impl std::convert::TryFrom<INIntent> for INUnsendMessagesIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INUnsendMessagesIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INUnsendMessagesIntent").unwrap()) };
        if is_kind_of {
            Ok(INUnsendMessagesIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INUnsendMessagesIntent")
        }
    }
}
impl INSObject for INUnsendMessagesIntent {}
impl PNSObject for INUnsendMessagesIntent {}
impl IINUnsendMessagesIntent for INUnsendMessagesIntent {}
pub trait IINUnsendMessagesIntent: Sized + std::ops::Deref {
    unsafe fn initWithMessageIdentifiers_(&self, messageIdentifiers: NSArray) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithMessageIdentifiers : messageIdentifiers)
    }
    unsafe fn messageIdentifiers(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, messageIdentifiers)
    }
}
pub trait PINUnsendMessagesIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleUnsendMessages_completion_(
        &self,
        intent: INUnsendMessagesIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleUnsendMessages : intent, completion : completion)
    }
    unsafe fn confirmUnsendMessages_completion_(
        &self,
        intent: INUnsendMessagesIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmUnsendMessages : intent, completion : completion)
    }
}
pub type INTaskPriority = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INAddTasksIntent(pub id);
impl std::ops::Deref for INAddTasksIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INAddTasksIntent {}
impl INAddTasksIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INAddTasksIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INAddTasksIntent {}
impl PNSCopying for INAddTasksIntent {}
impl PNSSecureCoding for INAddTasksIntent {}
impl std::convert::TryFrom<INIntent> for INAddTasksIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INAddTasksIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INAddTasksIntent").unwrap()) };
        if is_kind_of {
            Ok(INAddTasksIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INAddTasksIntent")
        }
    }
}
impl INSObject for INAddTasksIntent {}
impl PNSObject for INAddTasksIntent {}
impl IINAddTasksIntent for INAddTasksIntent {}
pub trait IINAddTasksIntent: Sized + std::ops::Deref {
    unsafe fn initWithTargetTaskList_taskTitles_spatialEventTrigger_temporalEventTrigger_priority_(
        &self,
        targetTaskList: INTaskList,
        taskTitles: NSArray,
        spatialEventTrigger: INSpatialEventTrigger,
        temporalEventTrigger: INTemporalEventTrigger,
        priority: INTaskPriority,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithTargetTaskList : targetTaskList, taskTitles : taskTitles, spatialEventTrigger : spatialEventTrigger, temporalEventTrigger : temporalEventTrigger, priority : priority)
    }
    unsafe fn targetTaskList(&self) -> INTaskList
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, targetTaskList)
    }
    unsafe fn taskTitles(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, taskTitles)
    }
    unsafe fn spatialEventTrigger(&self) -> INSpatialEventTrigger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, spatialEventTrigger)
    }
    unsafe fn temporalEventTrigger(&self) -> INTemporalEventTrigger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, temporalEventTrigger)
    }
    unsafe fn priority(&self) -> INTaskPriority
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, priority)
    }
}
pub trait PINAddTasksIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleAddTasks_completion_(
        &self,
        intent: INAddTasksIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleAddTasks : intent, completion : completion)
    }
    unsafe fn confirmAddTasks_completion_(
        &self,
        intent: INAddTasksIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmAddTasks : intent, completion : completion)
    }
    unsafe fn resolveTargetTaskListForAddTasks_withCompletion_(
        &self,
        intent: INAddTasksIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveTargetTaskListForAddTasks : intent, withCompletion : completion)
    }
    unsafe fn resolveTargetTaskListForAddTasks_completion_(
        &self,
        intent: INAddTasksIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveTargetTaskListForAddTasks : intent, completion : completion)
    }
    unsafe fn resolveTaskTitlesForAddTasks_withCompletion_(
        &self,
        intent: INAddTasksIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveTaskTitlesForAddTasks : intent, withCompletion : completion)
    }
    unsafe fn resolveSpatialEventTriggerForAddTasks_withCompletion_(
        &self,
        intent: INAddTasksIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveSpatialEventTriggerForAddTasks : intent, withCompletion : completion)
    }
    unsafe fn resolveTemporalEventTriggerForAddTasks_withCompletion_(
        &self,
        intent: INAddTasksIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveTemporalEventTriggerForAddTasks : intent, withCompletion : completion)
    }
    unsafe fn resolveTemporalEventTriggerForAddTasks_completion_(
        &self,
        intent: INAddTasksIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveTemporalEventTriggerForAddTasks : intent, completion : completion)
    }
    unsafe fn resolvePriorityForAddTasks_withCompletion_(
        &self,
        intent: INAddTasksIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolvePriorityForAddTasks : intent, withCompletion : completion)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INAppendToNoteIntent(pub id);
impl std::ops::Deref for INAppendToNoteIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INAppendToNoteIntent {}
impl INAppendToNoteIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INAppendToNoteIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INAppendToNoteIntent {}
impl PNSCopying for INAppendToNoteIntent {}
impl PNSSecureCoding for INAppendToNoteIntent {}
impl std::convert::TryFrom<INIntent> for INAppendToNoteIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INAppendToNoteIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INAppendToNoteIntent").unwrap()) };
        if is_kind_of {
            Ok(INAppendToNoteIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INAppendToNoteIntent")
        }
    }
}
impl INSObject for INAppendToNoteIntent {}
impl PNSObject for INAppendToNoteIntent {}
impl IINAppendToNoteIntent for INAppendToNoteIntent {}
pub trait IINAppendToNoteIntent: Sized + std::ops::Deref {
    unsafe fn initWithTargetNote_content_(
        &self,
        targetNote: INNote,
        content: INNoteContent,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithTargetNote : targetNote, content : content)
    }
    unsafe fn targetNote(&self) -> INNote
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, targetNote)
    }
    unsafe fn content(&self) -> INNoteContent
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, content)
    }
}
pub trait PINAppendToNoteIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleAppendToNote_completion_(
        &self,
        intent: INAppendToNoteIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleAppendToNote : intent, completion : completion)
    }
    unsafe fn confirmAppendToNote_completion_(
        &self,
        intent: INAppendToNoteIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmAppendToNote : intent, completion : completion)
    }
    unsafe fn resolveTargetNoteForAppendToNote_withCompletion_(
        &self,
        intent: INAppendToNoteIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveTargetNoteForAppendToNote : intent, withCompletion : completion)
    }
    unsafe fn resolveContentForAppendToNote_withCompletion_(
        &self,
        intent: INAppendToNoteIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveContentForAppendToNote : intent, withCompletion : completion)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INCreateNoteIntent(pub id);
impl std::ops::Deref for INCreateNoteIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INCreateNoteIntent {}
impl INCreateNoteIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INCreateNoteIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INCreateNoteIntent {}
impl PNSCopying for INCreateNoteIntent {}
impl PNSSecureCoding for INCreateNoteIntent {}
impl std::convert::TryFrom<INIntent> for INCreateNoteIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INCreateNoteIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INCreateNoteIntent").unwrap()) };
        if is_kind_of {
            Ok(INCreateNoteIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INCreateNoteIntent")
        }
    }
}
impl INSObject for INCreateNoteIntent {}
impl PNSObject for INCreateNoteIntent {}
impl IINCreateNoteIntent for INCreateNoteIntent {}
pub trait IINCreateNoteIntent: Sized + std::ops::Deref {
    unsafe fn initWithTitle_content_groupName_(
        &self,
        title: INSpeakableString,
        content: INNoteContent,
        groupName: INSpeakableString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithTitle : title, content : content, groupName : groupName)
    }
    unsafe fn title(&self) -> INSpeakableString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, title)
    }
    unsafe fn content(&self) -> INNoteContent
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, content)
    }
    unsafe fn groupName(&self) -> INSpeakableString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, groupName)
    }
}
pub trait PINCreateNoteIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleCreateNote_completion_(
        &self,
        intent: INCreateNoteIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleCreateNote : intent, completion : completion)
    }
    unsafe fn confirmCreateNote_completion_(
        &self,
        intent: INCreateNoteIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmCreateNote : intent, completion : completion)
    }
    unsafe fn resolveTitleForCreateNote_withCompletion_(
        &self,
        intent: INCreateNoteIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveTitleForCreateNote : intent, withCompletion : completion)
    }
    unsafe fn resolveContentForCreateNote_withCompletion_(
        &self,
        intent: INCreateNoteIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveContentForCreateNote : intent, withCompletion : completion)
    }
    unsafe fn resolveGroupNameForCreateNote_withCompletion_(
        &self,
        intent: INCreateNoteIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveGroupNameForCreateNote : intent, withCompletion : completion)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INCreateTaskListIntent(pub id);
impl std::ops::Deref for INCreateTaskListIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INCreateTaskListIntent {}
impl INCreateTaskListIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INCreateTaskListIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INCreateTaskListIntent {}
impl PNSCopying for INCreateTaskListIntent {}
impl PNSSecureCoding for INCreateTaskListIntent {}
impl std::convert::TryFrom<INIntent> for INCreateTaskListIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INCreateTaskListIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INCreateTaskListIntent").unwrap()) };
        if is_kind_of {
            Ok(INCreateTaskListIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INCreateTaskListIntent")
        }
    }
}
impl INSObject for INCreateTaskListIntent {}
impl PNSObject for INCreateTaskListIntent {}
impl IINCreateTaskListIntent for INCreateTaskListIntent {}
pub trait IINCreateTaskListIntent: Sized + std::ops::Deref {
    unsafe fn initWithTitle_taskTitles_groupName_(
        &self,
        title: INSpeakableString,
        taskTitles: NSArray,
        groupName: INSpeakableString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithTitle : title, taskTitles : taskTitles, groupName : groupName)
    }
    unsafe fn title(&self) -> INSpeakableString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, title)
    }
    unsafe fn taskTitles(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, taskTitles)
    }
    unsafe fn groupName(&self) -> INSpeakableString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, groupName)
    }
}
pub trait PINCreateTaskListIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleCreateTaskList_completion_(
        &self,
        intent: INCreateTaskListIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleCreateTaskList : intent, completion : completion)
    }
    unsafe fn confirmCreateTaskList_completion_(
        &self,
        intent: INCreateTaskListIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmCreateTaskList : intent, completion : completion)
    }
    unsafe fn resolveTitleForCreateTaskList_withCompletion_(
        &self,
        intent: INCreateTaskListIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveTitleForCreateTaskList : intent, withCompletion : completion)
    }
    unsafe fn resolveTaskTitlesForCreateTaskList_withCompletion_(
        &self,
        intent: INCreateTaskListIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveTaskTitlesForCreateTaskList : intent, withCompletion : completion)
    }
    unsafe fn resolveGroupNameForCreateTaskList_withCompletion_(
        &self,
        intent: INCreateTaskListIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveGroupNameForCreateTaskList : intent, withCompletion : completion)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INDeleteTasksIntent(pub id);
impl std::ops::Deref for INDeleteTasksIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INDeleteTasksIntent {}
impl INDeleteTasksIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INDeleteTasksIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INDeleteTasksIntent {}
impl PNSCopying for INDeleteTasksIntent {}
impl PNSSecureCoding for INDeleteTasksIntent {}
impl std::convert::TryFrom<INIntent> for INDeleteTasksIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INDeleteTasksIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INDeleteTasksIntent").unwrap()) };
        if is_kind_of {
            Ok(INDeleteTasksIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INDeleteTasksIntent")
        }
    }
}
impl INSObject for INDeleteTasksIntent {}
impl PNSObject for INDeleteTasksIntent {}
impl IINDeleteTasksIntent for INDeleteTasksIntent {}
pub trait IINDeleteTasksIntent: Sized + std::ops::Deref {
    unsafe fn initWithTaskList_tasks_all_(
        &self,
        taskList: INTaskList,
        tasks: NSArray,
        all: NSNumber,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithTaskList : taskList, tasks : tasks, all : all)
    }
    unsafe fn taskList(&self) -> INTaskList
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, taskList)
    }
    unsafe fn tasks(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tasks)
    }
    unsafe fn all(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, all)
    }
}
pub trait PINDeleteTasksIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleDeleteTasks_completion_(
        &self,
        intent: INDeleteTasksIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleDeleteTasks : intent, completion : completion)
    }
    unsafe fn confirmDeleteTasks_completion_(
        &self,
        intent: INDeleteTasksIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmDeleteTasks : intent, completion : completion)
    }
    unsafe fn resolveTaskListForDeleteTasks_withCompletion_(
        &self,
        intent: INDeleteTasksIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveTaskListForDeleteTasks : intent, withCompletion : completion)
    }
    unsafe fn resolveTasksForDeleteTasks_withCompletion_(
        &self,
        intent: INDeleteTasksIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveTasksForDeleteTasks : intent, withCompletion : completion)
    }
}
pub type INDateSearchType = NSInteger;
pub type INLocationSearchType = NSInteger;
pub type INNotebookItemType = NSInteger;
pub type INTaskStatus = NSInteger;
pub type INTemporalEventTriggerTypeOptions = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSearchForNotebookItemsIntent(pub id);
impl std::ops::Deref for INSearchForNotebookItemsIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSearchForNotebookItemsIntent {}
impl INSearchForNotebookItemsIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSearchForNotebookItemsIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INSearchForNotebookItemsIntent {}
impl PNSCopying for INSearchForNotebookItemsIntent {}
impl PNSSecureCoding for INSearchForNotebookItemsIntent {}
impl std::convert::TryFrom<INIntent> for INSearchForNotebookItemsIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INSearchForNotebookItemsIntent, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSearchForNotebookItemsIntent").unwrap())
        };
        if is_kind_of {
            Ok(INSearchForNotebookItemsIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INSearchForNotebookItemsIntent")
        }
    }
}
impl INSObject for INSearchForNotebookItemsIntent {}
impl PNSObject for INSearchForNotebookItemsIntent {}
impl IINSearchForNotebookItemsIntent for INSearchForNotebookItemsIntent {}
pub trait IINSearchForNotebookItemsIntent: Sized + std::ops::Deref {
    unsafe fn initWithTitle_content_itemType_status_location_locationSearchType_dateTime_dateSearchType_temporalEventTriggerTypes_taskPriority_notebookItemIdentifier_(
        &self,
        title: INSpeakableString,
        content: NSString,
        itemType: INNotebookItemType,
        status: INTaskStatus,
        location: CLPlacemark,
        locationSearchType: INLocationSearchType,
        dateTime: INDateComponentsRange,
        dateSearchType: INDateSearchType,
        temporalEventTriggerTypes: INTemporalEventTriggerTypeOptions,
        taskPriority: INTaskPriority,
        notebookItemIdentifier: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithTitle : title, content : content, itemType : itemType, status : status, location : location, locationSearchType : locationSearchType, dateTime : dateTime, dateSearchType : dateSearchType, temporalEventTriggerTypes : temporalEventTriggerTypes, taskPriority : taskPriority, notebookItemIdentifier : notebookItemIdentifier)
    }
    unsafe fn title(&self) -> INSpeakableString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, title)
    }
    unsafe fn content(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, content)
    }
    unsafe fn itemType(&self) -> INNotebookItemType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, itemType)
    }
    unsafe fn status(&self) -> INTaskStatus
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, status)
    }
    unsafe fn location(&self) -> CLPlacemark
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, location)
    }
    unsafe fn locationSearchType(&self) -> INLocationSearchType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, locationSearchType)
    }
    unsafe fn dateTime(&self) -> INDateComponentsRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, dateTime)
    }
    unsafe fn dateSearchType(&self) -> INDateSearchType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, dateSearchType)
    }
    unsafe fn temporalEventTriggerTypes(&self) -> INTemporalEventTriggerTypeOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, temporalEventTriggerTypes)
    }
    unsafe fn taskPriority(&self) -> INTaskPriority
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, taskPriority)
    }
    unsafe fn notebookItemIdentifier(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, notebookItemIdentifier)
    }
}
pub trait PINSearchForNotebookItemsIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleSearchForNotebookItems_completion_(
        &self,
        intent: INSearchForNotebookItemsIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleSearchForNotebookItems : intent, completion : completion)
    }
    unsafe fn confirmSearchForNotebookItems_completion_(
        &self,
        intent: INSearchForNotebookItemsIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmSearchForNotebookItems : intent, completion : completion)
    }
    unsafe fn resolveTitleForSearchForNotebookItems_withCompletion_(
        &self,
        intent: INSearchForNotebookItemsIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveTitleForSearchForNotebookItems : intent, withCompletion : completion)
    }
    unsafe fn resolveContentForSearchForNotebookItems_withCompletion_(
        &self,
        intent: INSearchForNotebookItemsIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveContentForSearchForNotebookItems : intent, withCompletion : completion)
    }
    unsafe fn resolveItemTypeForSearchForNotebookItems_withCompletion_(
        &self,
        intent: INSearchForNotebookItemsIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveItemTypeForSearchForNotebookItems : intent, withCompletion : completion)
    }
    unsafe fn resolveStatusForSearchForNotebookItems_withCompletion_(
        &self,
        intent: INSearchForNotebookItemsIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveStatusForSearchForNotebookItems : intent, withCompletion : completion)
    }
    unsafe fn resolveLocationForSearchForNotebookItems_withCompletion_(
        &self,
        intent: INSearchForNotebookItemsIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveLocationForSearchForNotebookItems : intent, withCompletion : completion)
    }
    unsafe fn resolveLocationSearchTypeForSearchForNotebookItems_withCompletion_(
        &self,
        intent: INSearchForNotebookItemsIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveLocationSearchTypeForSearchForNotebookItems : intent, withCompletion : completion)
    }
    unsafe fn resolveDateTimeForSearchForNotebookItems_withCompletion_(
        &self,
        intent: INSearchForNotebookItemsIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveDateTimeForSearchForNotebookItems : intent, withCompletion : completion)
    }
    unsafe fn resolveDateSearchTypeForSearchForNotebookItems_withCompletion_(
        &self,
        intent: INSearchForNotebookItemsIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveDateSearchTypeForSearchForNotebookItems : intent, withCompletion : completion)
    }
    unsafe fn resolveTemporalEventTriggerTypesForSearchForNotebookItems_withCompletion_(
        &self,
        intent: INSearchForNotebookItemsIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveTemporalEventTriggerTypesForSearchForNotebookItems : intent, withCompletion : completion)
    }
    unsafe fn resolveTaskPriorityForSearchForNotebookItems_withCompletion_(
        &self,
        intent: INSearchForNotebookItemsIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveTaskPriorityForSearchForNotebookItems : intent, withCompletion : completion)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSetTaskAttributeIntent(pub id);
impl std::ops::Deref for INSetTaskAttributeIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSetTaskAttributeIntent {}
impl INSetTaskAttributeIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSetTaskAttributeIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INSetTaskAttributeIntent {}
impl PNSCopying for INSetTaskAttributeIntent {}
impl PNSSecureCoding for INSetTaskAttributeIntent {}
impl std::convert::TryFrom<INIntent> for INSetTaskAttributeIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INSetTaskAttributeIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSetTaskAttributeIntent").unwrap()) };
        if is_kind_of {
            Ok(INSetTaskAttributeIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INSetTaskAttributeIntent")
        }
    }
}
impl INSObject for INSetTaskAttributeIntent {}
impl PNSObject for INSetTaskAttributeIntent {}
impl IINSetTaskAttributeIntent for INSetTaskAttributeIntent {}
pub trait IINSetTaskAttributeIntent: Sized + std::ops::Deref {
    unsafe fn initWithTargetTask_taskTitle_status_priority_spatialEventTrigger_temporalEventTrigger_(
        &self,
        targetTask: INTask,
        taskTitle: INSpeakableString,
        status: INTaskStatus,
        priority: INTaskPriority,
        spatialEventTrigger: INSpatialEventTrigger,
        temporalEventTrigger: INTemporalEventTrigger,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithTargetTask : targetTask, taskTitle : taskTitle, status : status, priority : priority, spatialEventTrigger : spatialEventTrigger, temporalEventTrigger : temporalEventTrigger)
    }
    unsafe fn targetTask(&self) -> INTask
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, targetTask)
    }
    unsafe fn taskTitle(&self) -> INSpeakableString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, taskTitle)
    }
    unsafe fn status(&self) -> INTaskStatus
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, status)
    }
    unsafe fn priority(&self) -> INTaskPriority
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, priority)
    }
    unsafe fn spatialEventTrigger(&self) -> INSpatialEventTrigger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, spatialEventTrigger)
    }
    unsafe fn temporalEventTrigger(&self) -> INTemporalEventTrigger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, temporalEventTrigger)
    }
}
pub trait PINSetTaskAttributeIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleSetTaskAttribute_completion_(
        &self,
        intent: INSetTaskAttributeIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleSetTaskAttribute : intent, completion : completion)
    }
    unsafe fn confirmSetTaskAttribute_completion_(
        &self,
        intent: INSetTaskAttributeIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmSetTaskAttribute : intent, completion : completion)
    }
    unsafe fn resolveTargetTaskForSetTaskAttribute_withCompletion_(
        &self,
        intent: INSetTaskAttributeIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveTargetTaskForSetTaskAttribute : intent, withCompletion : completion)
    }
    unsafe fn resolveTaskTitleForSetTaskAttribute_withCompletion_(
        &self,
        intent: INSetTaskAttributeIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveTaskTitleForSetTaskAttribute : intent, withCompletion : completion)
    }
    unsafe fn resolveStatusForSetTaskAttribute_withCompletion_(
        &self,
        intent: INSetTaskAttributeIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveStatusForSetTaskAttribute : intent, withCompletion : completion)
    }
    unsafe fn resolvePriorityForSetTaskAttribute_withCompletion_(
        &self,
        intent: INSetTaskAttributeIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolvePriorityForSetTaskAttribute : intent, withCompletion : completion)
    }
    unsafe fn resolveSpatialEventTriggerForSetTaskAttribute_withCompletion_(
        &self,
        intent: INSetTaskAttributeIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveSpatialEventTriggerForSetTaskAttribute : intent, withCompletion : completion)
    }
    unsafe fn resolveTemporalEventTriggerForSetTaskAttribute_withCompletion_(
        &self,
        intent: INSetTaskAttributeIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveTemporalEventTriggerForSetTaskAttribute : intent, withCompletion : completion)
    }
    unsafe fn resolveTemporalEventTriggerForSetTaskAttribute_completion_(
        &self,
        intent: INSetTaskAttributeIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveTemporalEventTriggerForSetTaskAttribute : intent, completion : completion)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSnoozeTasksIntent(pub id);
impl std::ops::Deref for INSnoozeTasksIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSnoozeTasksIntent {}
impl INSnoozeTasksIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSnoozeTasksIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INSnoozeTasksIntent {}
impl PNSCopying for INSnoozeTasksIntent {}
impl PNSSecureCoding for INSnoozeTasksIntent {}
impl std::convert::TryFrom<INIntent> for INSnoozeTasksIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INSnoozeTasksIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSnoozeTasksIntent").unwrap()) };
        if is_kind_of {
            Ok(INSnoozeTasksIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INSnoozeTasksIntent")
        }
    }
}
impl INSObject for INSnoozeTasksIntent {}
impl PNSObject for INSnoozeTasksIntent {}
impl IINSnoozeTasksIntent for INSnoozeTasksIntent {}
pub trait IINSnoozeTasksIntent: Sized + std::ops::Deref {
    unsafe fn initWithTasks_nextTriggerTime_all_(
        &self,
        tasks: NSArray,
        nextTriggerTime: INDateComponentsRange,
        all: NSNumber,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithTasks : tasks, nextTriggerTime : nextTriggerTime, all : all)
    }
    unsafe fn tasks(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tasks)
    }
    unsafe fn nextTriggerTime(&self) -> INDateComponentsRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, nextTriggerTime)
    }
    unsafe fn all(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, all)
    }
}
pub trait PINSnoozeTasksIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleSnoozeTasks_completion_(
        &self,
        intent: INSnoozeTasksIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleSnoozeTasks : intent, completion : completion)
    }
    unsafe fn confirmSnoozeTasks_completion_(
        &self,
        intent: INSnoozeTasksIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmSnoozeTasks : intent, completion : completion)
    }
    unsafe fn resolveTasksForSnoozeTasks_withCompletion_(
        &self,
        intent: INSnoozeTasksIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveTasksForSnoozeTasks : intent, withCompletion : completion)
    }
    unsafe fn resolveNextTriggerTimeForSnoozeTasks_withCompletion_(
        &self,
        intent: INSnoozeTasksIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveNextTriggerTimeForSnoozeTasks : intent, withCompletion : completion)
    }
}
pub type INBillType = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INPayBillIntent(pub id);
impl std::ops::Deref for INPayBillIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INPayBillIntent {}
impl INPayBillIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INPayBillIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INPayBillIntent {}
impl PNSCopying for INPayBillIntent {}
impl PNSSecureCoding for INPayBillIntent {}
impl std::convert::TryFrom<INIntent> for INPayBillIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INPayBillIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INPayBillIntent").unwrap()) };
        if is_kind_of {
            Ok(INPayBillIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INPayBillIntent")
        }
    }
}
impl INSObject for INPayBillIntent {}
impl PNSObject for INPayBillIntent {}
impl IINPayBillIntent for INPayBillIntent {}
pub trait IINPayBillIntent: Sized + std::ops::Deref {
    unsafe fn initWithBillPayee_fromAccount_transactionAmount_transactionScheduledDate_transactionNote_billType_dueDate_(
        &self,
        billPayee: INBillPayee,
        fromAccount: INPaymentAccount,
        transactionAmount: INPaymentAmount,
        transactionScheduledDate: INDateComponentsRange,
        transactionNote: NSString,
        billType: INBillType,
        dueDate: INDateComponentsRange,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithBillPayee : billPayee, fromAccount : fromAccount, transactionAmount : transactionAmount, transactionScheduledDate : transactionScheduledDate, transactionNote : transactionNote, billType : billType, dueDate : dueDate)
    }
    unsafe fn billPayee(&self) -> INBillPayee
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, billPayee)
    }
    unsafe fn fromAccount(&self) -> INPaymentAccount
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, fromAccount)
    }
    unsafe fn transactionAmount(&self) -> INPaymentAmount
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, transactionAmount)
    }
    unsafe fn transactionScheduledDate(&self) -> INDateComponentsRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, transactionScheduledDate)
    }
    unsafe fn transactionNote(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, transactionNote)
    }
    unsafe fn billType(&self) -> INBillType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, billType)
    }
    unsafe fn dueDate(&self) -> INDateComponentsRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, dueDate)
    }
}
pub trait PINPayBillIntentHandling: Sized + std::ops::Deref {
    unsafe fn handlePayBill_completion_(
        &self,
        intent: INPayBillIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handlePayBill : intent, completion : completion)
    }
    unsafe fn confirmPayBill_completion_(
        &self,
        intent: INPayBillIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmPayBill : intent, completion : completion)
    }
    unsafe fn resolveBillPayeeForPayBill_withCompletion_(
        &self,
        intent: INPayBillIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveBillPayeeForPayBill : intent, withCompletion : completion)
    }
    unsafe fn resolveFromAccountForPayBill_withCompletion_(
        &self,
        intent: INPayBillIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveFromAccountForPayBill : intent, withCompletion : completion)
    }
    unsafe fn resolveTransactionAmountForPayBill_withCompletion_(
        &self,
        intent: INPayBillIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveTransactionAmountForPayBill : intent, withCompletion : completion)
    }
    unsafe fn resolveTransactionScheduledDateForPayBill_withCompletion_(
        &self,
        intent: INPayBillIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveTransactionScheduledDateForPayBill : intent, withCompletion : completion)
    }
    unsafe fn resolveTransactionNoteForPayBill_withCompletion_(
        &self,
        intent: INPayBillIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveTransactionNoteForPayBill : intent, withCompletion : completion)
    }
    unsafe fn resolveBillTypeForPayBill_withCompletion_(
        &self,
        intent: INPayBillIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveBillTypeForPayBill : intent, withCompletion : completion)
    }
    unsafe fn resolveDueDateForPayBill_withCompletion_(
        &self,
        intent: INPayBillIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveDueDateForPayBill : intent, withCompletion : completion)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INRequestPaymentIntent(pub id);
impl std::ops::Deref for INRequestPaymentIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INRequestPaymentIntent {}
impl INRequestPaymentIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INRequestPaymentIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INRequestPaymentIntent {}
impl PNSCopying for INRequestPaymentIntent {}
impl PNSSecureCoding for INRequestPaymentIntent {}
impl std::convert::TryFrom<INIntent> for INRequestPaymentIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INRequestPaymentIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INRequestPaymentIntent").unwrap()) };
        if is_kind_of {
            Ok(INRequestPaymentIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INRequestPaymentIntent")
        }
    }
}
impl INSObject for INRequestPaymentIntent {}
impl PNSObject for INRequestPaymentIntent {}
impl IINRequestPaymentIntent for INRequestPaymentIntent {}
pub trait IINRequestPaymentIntent: Sized + std::ops::Deref {
    unsafe fn initWithPayer_currencyAmount_note_(
        &self,
        payer: INPerson,
        currencyAmount: INCurrencyAmount,
        note: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithPayer : payer, currencyAmount : currencyAmount, note : note)
    }
    unsafe fn payer(&self) -> INPerson
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, payer)
    }
    unsafe fn currencyAmount(&self) -> INCurrencyAmount
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, currencyAmount)
    }
    unsafe fn note(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, note)
    }
}
pub trait PINRequestPaymentIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleRequestPayment_completion_(
        &self,
        intent: INRequestPaymentIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleRequestPayment : intent, completion : completion)
    }
    unsafe fn confirmRequestPayment_completion_(
        &self,
        intent: INRequestPaymentIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmRequestPayment : intent, completion : completion)
    }
    unsafe fn resolvePayerForRequestPayment_withCompletion_(
        &self,
        intent: INRequestPaymentIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolvePayerForRequestPayment : intent, withCompletion : completion)
    }
    unsafe fn resolvePayerForRequestPayment_completion_(
        &self,
        intent: INRequestPaymentIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolvePayerForRequestPayment : intent, completion : completion)
    }
    unsafe fn resolveCurrencyAmountForRequestPayment_withCompletion_(
        &self,
        intent: INRequestPaymentIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveCurrencyAmountForRequestPayment : intent, withCompletion : completion)
    }
    unsafe fn resolveCurrencyAmountForRequestPayment_completion_(
        &self,
        intent: INRequestPaymentIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveCurrencyAmountForRequestPayment : intent, completion : completion)
    }
    unsafe fn resolveNoteForRequestPayment_withCompletion_(
        &self,
        intent: INRequestPaymentIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveNoteForRequestPayment : intent, withCompletion : completion)
    }
}
pub type INAccountType = NSInteger;
pub type INBalanceType = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSearchForAccountsIntent(pub id);
impl std::ops::Deref for INSearchForAccountsIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSearchForAccountsIntent {}
impl INSearchForAccountsIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSearchForAccountsIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INSearchForAccountsIntent {}
impl PNSCopying for INSearchForAccountsIntent {}
impl PNSSecureCoding for INSearchForAccountsIntent {}
impl std::convert::TryFrom<INIntent> for INSearchForAccountsIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INSearchForAccountsIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSearchForAccountsIntent").unwrap()) };
        if is_kind_of {
            Ok(INSearchForAccountsIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INSearchForAccountsIntent")
        }
    }
}
impl INSObject for INSearchForAccountsIntent {}
impl PNSObject for INSearchForAccountsIntent {}
impl IINSearchForAccountsIntent for INSearchForAccountsIntent {}
pub trait IINSearchForAccountsIntent: Sized + std::ops::Deref {
    unsafe fn initWithAccountNickname_accountType_organizationName_requestedBalanceType_(
        &self,
        accountNickname: INSpeakableString,
        accountType: INAccountType,
        organizationName: INSpeakableString,
        requestedBalanceType: INBalanceType,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithAccountNickname : accountNickname, accountType : accountType, organizationName : organizationName, requestedBalanceType : requestedBalanceType)
    }
    unsafe fn accountNickname(&self) -> INSpeakableString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accountNickname)
    }
    unsafe fn accountType(&self) -> INAccountType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accountType)
    }
    unsafe fn organizationName(&self) -> INSpeakableString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, organizationName)
    }
    unsafe fn requestedBalanceType(&self) -> INBalanceType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, requestedBalanceType)
    }
}
pub trait PINSearchForAccountsIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleSearchForAccounts_completion_(
        &self,
        intent: INSearchForAccountsIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleSearchForAccounts : intent, completion : completion)
    }
    unsafe fn confirmSearchForAccounts_completion_(
        &self,
        intent: INSearchForAccountsIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmSearchForAccounts : intent, completion : completion)
    }
    unsafe fn resolveAccountNicknameForSearchForAccounts_withCompletion_(
        &self,
        intent: INSearchForAccountsIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveAccountNicknameForSearchForAccounts : intent, withCompletion : completion)
    }
    unsafe fn resolveAccountTypeForSearchForAccounts_withCompletion_(
        &self,
        intent: INSearchForAccountsIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveAccountTypeForSearchForAccounts : intent, withCompletion : completion)
    }
    unsafe fn resolveOrganizationNameForSearchForAccounts_withCompletion_(
        &self,
        intent: INSearchForAccountsIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveOrganizationNameForSearchForAccounts : intent, withCompletion : completion)
    }
    unsafe fn resolveRequestedBalanceTypeForSearchForAccounts_withCompletion_(
        &self,
        intent: INSearchForAccountsIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveRequestedBalanceTypeForSearchForAccounts : intent, withCompletion : completion)
    }
}
pub type INPaymentStatus = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSearchForBillsIntent(pub id);
impl std::ops::Deref for INSearchForBillsIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSearchForBillsIntent {}
impl INSearchForBillsIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSearchForBillsIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INSearchForBillsIntent {}
impl PNSCopying for INSearchForBillsIntent {}
impl PNSSecureCoding for INSearchForBillsIntent {}
impl std::convert::TryFrom<INIntent> for INSearchForBillsIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INSearchForBillsIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSearchForBillsIntent").unwrap()) };
        if is_kind_of {
            Ok(INSearchForBillsIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INSearchForBillsIntent")
        }
    }
}
impl INSObject for INSearchForBillsIntent {}
impl PNSObject for INSearchForBillsIntent {}
impl IINSearchForBillsIntent for INSearchForBillsIntent {}
pub trait IINSearchForBillsIntent: Sized + std::ops::Deref {
    unsafe fn initWithBillPayee_paymentDateRange_billType_status_dueDateRange_(
        &self,
        billPayee: INBillPayee,
        paymentDateRange: INDateComponentsRange,
        billType: INBillType,
        status: INPaymentStatus,
        dueDateRange: INDateComponentsRange,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithBillPayee : billPayee, paymentDateRange : paymentDateRange, billType : billType, status : status, dueDateRange : dueDateRange)
    }
    unsafe fn billPayee(&self) -> INBillPayee
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, billPayee)
    }
    unsafe fn paymentDateRange(&self) -> INDateComponentsRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, paymentDateRange)
    }
    unsafe fn billType(&self) -> INBillType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, billType)
    }
    unsafe fn status(&self) -> INPaymentStatus
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, status)
    }
    unsafe fn dueDateRange(&self) -> INDateComponentsRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, dueDateRange)
    }
}
pub trait PINSearchForBillsIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleSearchForBills_completion_(
        &self,
        intent: INSearchForBillsIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleSearchForBills : intent, completion : completion)
    }
    unsafe fn confirmSearchForBills_completion_(
        &self,
        intent: INSearchForBillsIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmSearchForBills : intent, completion : completion)
    }
    unsafe fn resolveBillPayeeForSearchForBills_withCompletion_(
        &self,
        intent: INSearchForBillsIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveBillPayeeForSearchForBills : intent, withCompletion : completion)
    }
    unsafe fn resolvePaymentDateRangeForSearchForBills_withCompletion_(
        &self,
        intent: INSearchForBillsIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolvePaymentDateRangeForSearchForBills : intent, withCompletion : completion)
    }
    unsafe fn resolveBillTypeForSearchForBills_withCompletion_(
        &self,
        intent: INSearchForBillsIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveBillTypeForSearchForBills : intent, withCompletion : completion)
    }
    unsafe fn resolveStatusForSearchForBills_withCompletion_(
        &self,
        intent: INSearchForBillsIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveStatusForSearchForBills : intent, withCompletion : completion)
    }
    unsafe fn resolveDueDateRangeForSearchForBills_withCompletion_(
        &self,
        intent: INSearchForBillsIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveDueDateRangeForSearchForBills : intent, withCompletion : completion)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSendPaymentIntent(pub id);
impl std::ops::Deref for INSendPaymentIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSendPaymentIntent {}
impl INSendPaymentIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSendPaymentIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INSendPaymentIntent {}
impl PNSCopying for INSendPaymentIntent {}
impl PNSSecureCoding for INSendPaymentIntent {}
impl std::convert::TryFrom<INIntent> for INSendPaymentIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INSendPaymentIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSendPaymentIntent").unwrap()) };
        if is_kind_of {
            Ok(INSendPaymentIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INSendPaymentIntent")
        }
    }
}
impl INSObject for INSendPaymentIntent {}
impl PNSObject for INSendPaymentIntent {}
impl IINSendPaymentIntent for INSendPaymentIntent {}
pub trait IINSendPaymentIntent: Sized + std::ops::Deref {
    unsafe fn initWithPayee_currencyAmount_note_(
        &self,
        payee: INPerson,
        currencyAmount: INCurrencyAmount,
        note: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithPayee : payee, currencyAmount : currencyAmount, note : note)
    }
    unsafe fn payee(&self) -> INPerson
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, payee)
    }
    unsafe fn currencyAmount(&self) -> INCurrencyAmount
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, currencyAmount)
    }
    unsafe fn note(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, note)
    }
}
pub trait PINSendPaymentIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleSendPayment_completion_(
        &self,
        intent: INSendPaymentIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleSendPayment : intent, completion : completion)
    }
    unsafe fn confirmSendPayment_completion_(
        &self,
        intent: INSendPaymentIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmSendPayment : intent, completion : completion)
    }
    unsafe fn resolvePayeeForSendPayment_withCompletion_(
        &self,
        intent: INSendPaymentIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolvePayeeForSendPayment : intent, withCompletion : completion)
    }
    unsafe fn resolvePayeeForSendPayment_completion_(
        &self,
        intent: INSendPaymentIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolvePayeeForSendPayment : intent, completion : completion)
    }
    unsafe fn resolveCurrencyAmountForSendPayment_withCompletion_(
        &self,
        intent: INSendPaymentIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveCurrencyAmountForSendPayment : intent, withCompletion : completion)
    }
    unsafe fn resolveCurrencyAmountForSendPayment_completion_(
        &self,
        intent: INSendPaymentIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveCurrencyAmountForSendPayment : intent, completion : completion)
    }
    unsafe fn resolveNoteForSendPayment_withCompletion_(
        &self,
        intent: INSendPaymentIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveNoteForSendPayment : intent, withCompletion : completion)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INTransferMoneyIntent(pub id);
impl std::ops::Deref for INTransferMoneyIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INTransferMoneyIntent {}
impl INTransferMoneyIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INTransferMoneyIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INTransferMoneyIntent {}
impl PNSCopying for INTransferMoneyIntent {}
impl PNSSecureCoding for INTransferMoneyIntent {}
impl std::convert::TryFrom<INIntent> for INTransferMoneyIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INTransferMoneyIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INTransferMoneyIntent").unwrap()) };
        if is_kind_of {
            Ok(INTransferMoneyIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INTransferMoneyIntent")
        }
    }
}
impl INSObject for INTransferMoneyIntent {}
impl PNSObject for INTransferMoneyIntent {}
impl IINTransferMoneyIntent for INTransferMoneyIntent {}
pub trait IINTransferMoneyIntent: Sized + std::ops::Deref {
    unsafe fn initWithFromAccount_toAccount_transactionAmount_transactionScheduledDate_transactionNote_(
        &self,
        fromAccount: INPaymentAccount,
        toAccount: INPaymentAccount,
        transactionAmount: INPaymentAmount,
        transactionScheduledDate: INDateComponentsRange,
        transactionNote: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithFromAccount : fromAccount, toAccount : toAccount, transactionAmount : transactionAmount, transactionScheduledDate : transactionScheduledDate, transactionNote : transactionNote)
    }
    unsafe fn fromAccount(&self) -> INPaymentAccount
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, fromAccount)
    }
    unsafe fn toAccount(&self) -> INPaymentAccount
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, toAccount)
    }
    unsafe fn transactionAmount(&self) -> INPaymentAmount
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, transactionAmount)
    }
    unsafe fn transactionScheduledDate(&self) -> INDateComponentsRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, transactionScheduledDate)
    }
    unsafe fn transactionNote(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, transactionNote)
    }
}
pub trait PINTransferMoneyIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleTransferMoney_completion_(
        &self,
        intent: INTransferMoneyIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleTransferMoney : intent, completion : completion)
    }
    unsafe fn confirmTransferMoney_completion_(
        &self,
        intent: INTransferMoneyIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmTransferMoney : intent, completion : completion)
    }
    unsafe fn resolveFromAccountForTransferMoney_withCompletion_(
        &self,
        intent: INTransferMoneyIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveFromAccountForTransferMoney : intent, withCompletion : completion)
    }
    unsafe fn resolveToAccountForTransferMoney_withCompletion_(
        &self,
        intent: INTransferMoneyIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveToAccountForTransferMoney : intent, withCompletion : completion)
    }
    unsafe fn resolveTransactionAmountForTransferMoney_withCompletion_(
        &self,
        intent: INTransferMoneyIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveTransactionAmountForTransferMoney : intent, withCompletion : completion)
    }
    unsafe fn resolveTransactionScheduledDateForTransferMoney_withCompletion_(
        &self,
        intent: INTransferMoneyIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveTransactionScheduledDateForTransferMoney : intent, withCompletion : completion)
    }
    unsafe fn resolveTransactionNoteForTransferMoney_withCompletion_(
        &self,
        intent: INTransferMoneyIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveTransactionNoteForTransferMoney : intent, withCompletion : completion)
    }
}
pub type INPhotoAttributeOptions = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSearchForPhotosIntent(pub id);
impl std::ops::Deref for INSearchForPhotosIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSearchForPhotosIntent {}
impl INSearchForPhotosIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSearchForPhotosIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INSearchForPhotosIntent {}
impl PNSCopying for INSearchForPhotosIntent {}
impl PNSSecureCoding for INSearchForPhotosIntent {}
impl std::convert::TryFrom<INIntent> for INSearchForPhotosIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INSearchForPhotosIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSearchForPhotosIntent").unwrap()) };
        if is_kind_of {
            Ok(INSearchForPhotosIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INSearchForPhotosIntent")
        }
    }
}
impl INSObject for INSearchForPhotosIntent {}
impl PNSObject for INSearchForPhotosIntent {}
impl IINSearchForPhotosIntent for INSearchForPhotosIntent {}
pub trait IINSearchForPhotosIntent: Sized + std::ops::Deref {
    unsafe fn initWithDateCreated_locationCreated_albumName_searchTerms_includedAttributes_excludedAttributes_peopleInPhoto_(
        &self,
        dateCreated: INDateComponentsRange,
        locationCreated: CLPlacemark,
        albumName: NSString,
        searchTerms: NSArray,
        includedAttributes: INPhotoAttributeOptions,
        excludedAttributes: INPhotoAttributeOptions,
        peopleInPhoto: NSArray,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithDateCreated : dateCreated, locationCreated : locationCreated, albumName : albumName, searchTerms : searchTerms, includedAttributes : includedAttributes, excludedAttributes : excludedAttributes, peopleInPhoto : peopleInPhoto)
    }
    unsafe fn dateCreated(&self) -> INDateComponentsRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, dateCreated)
    }
    unsafe fn locationCreated(&self) -> CLPlacemark
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, locationCreated)
    }
    unsafe fn albumName(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, albumName)
    }
    unsafe fn searchTerms(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, searchTerms)
    }
    unsafe fn searchTermsOperator(&self) -> INConditionalOperator
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, searchTermsOperator)
    }
    unsafe fn includedAttributes(&self) -> INPhotoAttributeOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, includedAttributes)
    }
    unsafe fn excludedAttributes(&self) -> INPhotoAttributeOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, excludedAttributes)
    }
    unsafe fn peopleInPhoto(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, peopleInPhoto)
    }
    unsafe fn peopleInPhotoOperator(&self) -> INConditionalOperator
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, peopleInPhotoOperator)
    }
}
pub trait PINSearchForPhotosIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleSearchForPhotos_completion_(
        &self,
        intent: INSearchForPhotosIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleSearchForPhotos : intent, completion : completion)
    }
    unsafe fn confirmSearchForPhotos_completion_(
        &self,
        intent: INSearchForPhotosIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmSearchForPhotos : intent, completion : completion)
    }
    unsafe fn resolveDateCreatedForSearchForPhotos_withCompletion_(
        &self,
        intent: INSearchForPhotosIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveDateCreatedForSearchForPhotos : intent, withCompletion : completion)
    }
    unsafe fn resolveLocationCreatedForSearchForPhotos_withCompletion_(
        &self,
        intent: INSearchForPhotosIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveLocationCreatedForSearchForPhotos : intent, withCompletion : completion)
    }
    unsafe fn resolveAlbumNameForSearchForPhotos_withCompletion_(
        &self,
        intent: INSearchForPhotosIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveAlbumNameForSearchForPhotos : intent, withCompletion : completion)
    }
    unsafe fn resolveSearchTermsForSearchForPhotos_withCompletion_(
        &self,
        intent: INSearchForPhotosIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveSearchTermsForSearchForPhotos : intent, withCompletion : completion)
    }
    unsafe fn resolvePeopleInPhotoForSearchForPhotos_withCompletion_(
        &self,
        intent: INSearchForPhotosIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolvePeopleInPhotoForSearchForPhotos : intent, withCompletion : completion)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INStartPhotoPlaybackIntent(pub id);
impl std::ops::Deref for INStartPhotoPlaybackIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INStartPhotoPlaybackIntent {}
impl INStartPhotoPlaybackIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INStartPhotoPlaybackIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INStartPhotoPlaybackIntent {}
impl PNSCopying for INStartPhotoPlaybackIntent {}
impl PNSSecureCoding for INStartPhotoPlaybackIntent {}
impl std::convert::TryFrom<INIntent> for INStartPhotoPlaybackIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INStartPhotoPlaybackIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INStartPhotoPlaybackIntent").unwrap()) };
        if is_kind_of {
            Ok(INStartPhotoPlaybackIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INStartPhotoPlaybackIntent")
        }
    }
}
impl INSObject for INStartPhotoPlaybackIntent {}
impl PNSObject for INStartPhotoPlaybackIntent {}
impl IINStartPhotoPlaybackIntent for INStartPhotoPlaybackIntent {}
pub trait IINStartPhotoPlaybackIntent: Sized + std::ops::Deref {
    unsafe fn initWithDateCreated_locationCreated_albumName_searchTerms_includedAttributes_excludedAttributes_peopleInPhoto_(
        &self,
        dateCreated: INDateComponentsRange,
        locationCreated: CLPlacemark,
        albumName: NSString,
        searchTerms: NSArray,
        includedAttributes: INPhotoAttributeOptions,
        excludedAttributes: INPhotoAttributeOptions,
        peopleInPhoto: NSArray,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithDateCreated : dateCreated, locationCreated : locationCreated, albumName : albumName, searchTerms : searchTerms, includedAttributes : includedAttributes, excludedAttributes : excludedAttributes, peopleInPhoto : peopleInPhoto)
    }
    unsafe fn dateCreated(&self) -> INDateComponentsRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, dateCreated)
    }
    unsafe fn locationCreated(&self) -> CLPlacemark
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, locationCreated)
    }
    unsafe fn albumName(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, albumName)
    }
    unsafe fn searchTerms(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, searchTerms)
    }
    unsafe fn searchTermsOperator(&self) -> INConditionalOperator
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, searchTermsOperator)
    }
    unsafe fn includedAttributes(&self) -> INPhotoAttributeOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, includedAttributes)
    }
    unsafe fn excludedAttributes(&self) -> INPhotoAttributeOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, excludedAttributes)
    }
    unsafe fn peopleInPhoto(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, peopleInPhoto)
    }
    unsafe fn peopleInPhotoOperator(&self) -> INConditionalOperator
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, peopleInPhotoOperator)
    }
}
pub trait PINStartPhotoPlaybackIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleStartPhotoPlayback_completion_(
        &self,
        intent: INStartPhotoPlaybackIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleStartPhotoPlayback : intent, completion : completion)
    }
    unsafe fn confirmStartPhotoPlayback_completion_(
        &self,
        intent: INStartPhotoPlaybackIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmStartPhotoPlayback : intent, completion : completion)
    }
    unsafe fn resolveDateCreatedForStartPhotoPlayback_withCompletion_(
        &self,
        intent: INStartPhotoPlaybackIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveDateCreatedForStartPhotoPlayback : intent, withCompletion : completion)
    }
    unsafe fn resolveLocationCreatedForStartPhotoPlayback_withCompletion_(
        &self,
        intent: INStartPhotoPlaybackIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveLocationCreatedForStartPhotoPlayback : intent, withCompletion : completion)
    }
    unsafe fn resolveAlbumNameForStartPhotoPlayback_withCompletion_(
        &self,
        intent: INStartPhotoPlaybackIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveAlbumNameForStartPhotoPlayback : intent, withCompletion : completion)
    }
    unsafe fn resolvePeopleInPhotoForStartPhotoPlayback_withCompletion_(
        &self,
        intent: INStartPhotoPlaybackIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolvePeopleInPhotoForStartPhotoPlayback : intent, withCompletion : completion)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INGetReservationDetailsIntent(pub id);
impl std::ops::Deref for INGetReservationDetailsIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INGetReservationDetailsIntent {}
impl INGetReservationDetailsIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INGetReservationDetailsIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INGetReservationDetailsIntent {}
impl PNSCopying for INGetReservationDetailsIntent {}
impl PNSSecureCoding for INGetReservationDetailsIntent {}
impl std::convert::TryFrom<INIntent> for INGetReservationDetailsIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INGetReservationDetailsIntent, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INGetReservationDetailsIntent").unwrap())
        };
        if is_kind_of {
            Ok(INGetReservationDetailsIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INGetReservationDetailsIntent")
        }
    }
}
impl INSObject for INGetReservationDetailsIntent {}
impl PNSObject for INGetReservationDetailsIntent {}
impl IINGetReservationDetailsIntent for INGetReservationDetailsIntent {}
pub trait IINGetReservationDetailsIntent: Sized + std::ops::Deref {
    unsafe fn initWithReservationContainerReference_reservationItemReferences_(
        &self,
        reservationContainerReference: INSpeakableString,
        reservationItemReferences: NSArray,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithReservationContainerReference : reservationContainerReference, reservationItemReferences : reservationItemReferences)
    }
    unsafe fn reservationContainerReference(&self) -> INSpeakableString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, reservationContainerReference)
    }
    unsafe fn reservationItemReferences(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, reservationItemReferences)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INGetRideStatusIntent(pub id);
impl std::ops::Deref for INGetRideStatusIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INGetRideStatusIntent {}
impl INGetRideStatusIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INGetRideStatusIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INGetRideStatusIntent {}
impl PNSCopying for INGetRideStatusIntent {}
impl PNSSecureCoding for INGetRideStatusIntent {}
impl std::convert::TryFrom<INIntent> for INGetRideStatusIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INGetRideStatusIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INGetRideStatusIntent").unwrap()) };
        if is_kind_of {
            Ok(INGetRideStatusIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INGetRideStatusIntent")
        }
    }
}
impl INSObject for INGetRideStatusIntent {}
impl PNSObject for INGetRideStatusIntent {}
impl IINGetRideStatusIntent for INGetRideStatusIntent {}
pub trait IINGetRideStatusIntent: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
}
pub trait PINGetRideStatusIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleGetRideStatus_completion_(
        &self,
        intent: INGetRideStatusIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleGetRideStatus : intent, completion : completion)
    }
    unsafe fn startSendingUpdatesForGetRideStatus_toObserver_(
        &self,
        intent: INGetRideStatusIntent,
        observer: *mut u64,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, startSendingUpdatesForGetRideStatus : intent, toObserver : observer)
    }
    unsafe fn stopSendingUpdatesForGetRideStatus_(&self, intent: INGetRideStatusIntent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, stopSendingUpdatesForGetRideStatus : intent)
    }
    unsafe fn confirmGetRideStatus_completion_(
        &self,
        intent: INGetRideStatusIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmGetRideStatus : intent, completion : completion)
    }
}
pub trait PINGetRideStatusIntentResponseObserver: Sized + std::ops::Deref {
    unsafe fn getRideStatusResponseDidUpdate_(&self, response: INGetRideStatusIntentResponse)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, getRideStatusResponseDidUpdate : response)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INListRideOptionsIntent(pub id);
impl std::ops::Deref for INListRideOptionsIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INListRideOptionsIntent {}
impl INListRideOptionsIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INListRideOptionsIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INListRideOptionsIntent {}
impl PNSCopying for INListRideOptionsIntent {}
impl PNSSecureCoding for INListRideOptionsIntent {}
impl std::convert::TryFrom<INIntent> for INListRideOptionsIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INListRideOptionsIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INListRideOptionsIntent").unwrap()) };
        if is_kind_of {
            Ok(INListRideOptionsIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INListRideOptionsIntent")
        }
    }
}
impl INSObject for INListRideOptionsIntent {}
impl PNSObject for INListRideOptionsIntent {}
impl IINListRideOptionsIntent for INListRideOptionsIntent {}
pub trait IINListRideOptionsIntent: Sized + std::ops::Deref {
    unsafe fn initWithPickupLocation_dropOffLocation_(
        &self,
        pickupLocation: CLPlacemark,
        dropOffLocation: CLPlacemark,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithPickupLocation : pickupLocation, dropOffLocation : dropOffLocation)
    }
    unsafe fn pickupLocation(&self) -> CLPlacemark
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, pickupLocation)
    }
    unsafe fn dropOffLocation(&self) -> CLPlacemark
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, dropOffLocation)
    }
}
pub trait PINListRideOptionsIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleListRideOptions_completion_(
        &self,
        intent: INListRideOptionsIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleListRideOptions : intent, completion : completion)
    }
    unsafe fn confirmListRideOptions_completion_(
        &self,
        intent: INListRideOptionsIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmListRideOptions : intent, completion : completion)
    }
    unsafe fn resolvePickupLocationForListRideOptions_withCompletion_(
        &self,
        intent: INListRideOptionsIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolvePickupLocationForListRideOptions : intent, withCompletion : completion)
    }
    unsafe fn resolveDropOffLocationForListRideOptions_withCompletion_(
        &self,
        intent: INListRideOptionsIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveDropOffLocationForListRideOptions : intent, withCompletion : completion)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INRequestRideIntent(pub id);
impl std::ops::Deref for INRequestRideIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INRequestRideIntent {}
impl INRequestRideIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INRequestRideIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INRequestRideIntent {}
impl PNSCopying for INRequestRideIntent {}
impl PNSSecureCoding for INRequestRideIntent {}
impl std::convert::TryFrom<INIntent> for INRequestRideIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INRequestRideIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INRequestRideIntent").unwrap()) };
        if is_kind_of {
            Ok(INRequestRideIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INRequestRideIntent")
        }
    }
}
impl INSObject for INRequestRideIntent {}
impl PNSObject for INRequestRideIntent {}
impl IINRequestRideIntent for INRequestRideIntent {}
pub trait IINRequestRideIntent: Sized + std::ops::Deref {
    unsafe fn initWithPickupLocation_dropOffLocation_rideOptionName_partySize_paymentMethod_scheduledPickupTime_(
        &self,
        pickupLocation: CLPlacemark,
        dropOffLocation: CLPlacemark,
        rideOptionName: INSpeakableString,
        partySize: NSNumber,
        paymentMethod: INPaymentMethod,
        scheduledPickupTime: INDateComponentsRange,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithPickupLocation : pickupLocation, dropOffLocation : dropOffLocation, rideOptionName : rideOptionName, partySize : partySize, paymentMethod : paymentMethod, scheduledPickupTime : scheduledPickupTime)
    }
    unsafe fn pickupLocation(&self) -> CLPlacemark
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, pickupLocation)
    }
    unsafe fn dropOffLocation(&self) -> CLPlacemark
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, dropOffLocation)
    }
    unsafe fn rideOptionName(&self) -> INSpeakableString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, rideOptionName)
    }
    unsafe fn partySize(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, partySize)
    }
    unsafe fn paymentMethod(&self) -> INPaymentMethod
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, paymentMethod)
    }
    unsafe fn scheduledPickupTime(&self) -> INDateComponentsRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, scheduledPickupTime)
    }
}
pub trait PINRequestRideIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleRequestRide_completion_(
        &self,
        intent: INRequestRideIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleRequestRide : intent, completion : completion)
    }
    unsafe fn confirmRequestRide_completion_(
        &self,
        intent: INRequestRideIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmRequestRide : intent, completion : completion)
    }
    unsafe fn resolvePickupLocationForRequestRide_withCompletion_(
        &self,
        intent: INRequestRideIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolvePickupLocationForRequestRide : intent, withCompletion : completion)
    }
    unsafe fn resolveDropOffLocationForRequestRide_withCompletion_(
        &self,
        intent: INRequestRideIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveDropOffLocationForRequestRide : intent, withCompletion : completion)
    }
    unsafe fn resolveRideOptionNameForRequestRide_withCompletion_(
        &self,
        intent: INRequestRideIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveRideOptionNameForRequestRide : intent, withCompletion : completion)
    }
    unsafe fn resolvePartySizeForRequestRide_withCompletion_(
        &self,
        intent: INRequestRideIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolvePartySizeForRequestRide : intent, withCompletion : completion)
    }
    unsafe fn resolveScheduledPickupTimeForRequestRide_withCompletion_(
        &self,
        intent: INRequestRideIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveScheduledPickupTimeForRequestRide : intent, withCompletion : completion)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INCancelRideIntent(pub id);
impl std::ops::Deref for INCancelRideIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INCancelRideIntent {}
impl INCancelRideIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INCancelRideIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INCancelRideIntent {}
impl PNSCopying for INCancelRideIntent {}
impl PNSSecureCoding for INCancelRideIntent {}
impl std::convert::TryFrom<INIntent> for INCancelRideIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INCancelRideIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INCancelRideIntent").unwrap()) };
        if is_kind_of {
            Ok(INCancelRideIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INCancelRideIntent")
        }
    }
}
impl INSObject for INCancelRideIntent {}
impl PNSObject for INCancelRideIntent {}
impl IINCancelRideIntent for INCancelRideIntent {}
pub trait IINCancelRideIntent: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithRideIdentifier_(&self, rideIdentifier: NSString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithRideIdentifier : rideIdentifier)
    }
    unsafe fn rideIdentifier(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, rideIdentifier)
    }
}
pub trait PINCancelRideIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleCancelRide_completion_(
        &self,
        intent: INCancelRideIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleCancelRide : intent, completion : completion)
    }
    unsafe fn confirmCancelRide_completion_(
        &self,
        intent: INCancelRideIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmCancelRide : intent, completion : completion)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSendRideFeedbackIntent(pub id);
impl std::ops::Deref for INSendRideFeedbackIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSendRideFeedbackIntent {}
impl INSendRideFeedbackIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSendRideFeedbackIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INSendRideFeedbackIntent {}
impl PNSCopying for INSendRideFeedbackIntent {}
impl PNSSecureCoding for INSendRideFeedbackIntent {}
impl std::convert::TryFrom<INIntent> for INSendRideFeedbackIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INSendRideFeedbackIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSendRideFeedbackIntent").unwrap()) };
        if is_kind_of {
            Ok(INSendRideFeedbackIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INSendRideFeedbackIntent")
        }
    }
}
impl INSObject for INSendRideFeedbackIntent {}
impl PNSObject for INSendRideFeedbackIntent {}
impl IINSendRideFeedbackIntent for INSendRideFeedbackIntent {}
pub trait IINSendRideFeedbackIntent: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithRideIdentifier_(&self, rideIdentifier: NSString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithRideIdentifier : rideIdentifier)
    }
    unsafe fn rideIdentifier(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, rideIdentifier)
    }
    unsafe fn rating(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, rating)
    }
    unsafe fn setRating_(&self, rating: NSNumber)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRating : rating)
    }
    unsafe fn tip(&self) -> INCurrencyAmount
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tip)
    }
    unsafe fn setTip_(&self, tip: INCurrencyAmount)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTip : tip)
    }
}
pub trait PINSendRideFeedbackIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleSendRideFeedback_completion_(
        &self,
        sendRideFeedbackintent: INSendRideFeedbackIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleSendRideFeedback : sendRideFeedbackintent, completion : completion)
    }
    unsafe fn confirmSendRideFeedback_completion_(
        &self,
        sendRideFeedbackIntent: INSendRideFeedbackIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmSendRideFeedback : sendRideFeedbackIntent, completion : completion)
    }
}
pub type INVisualCodeType = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INGetVisualCodeIntent(pub id);
impl std::ops::Deref for INGetVisualCodeIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INGetVisualCodeIntent {}
impl INGetVisualCodeIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INGetVisualCodeIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INGetVisualCodeIntent {}
impl PNSCopying for INGetVisualCodeIntent {}
impl PNSSecureCoding for INGetVisualCodeIntent {}
impl std::convert::TryFrom<INIntent> for INGetVisualCodeIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INGetVisualCodeIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INGetVisualCodeIntent").unwrap()) };
        if is_kind_of {
            Ok(INGetVisualCodeIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INGetVisualCodeIntent")
        }
    }
}
impl INSObject for INGetVisualCodeIntent {}
impl PNSObject for INGetVisualCodeIntent {}
impl IINGetVisualCodeIntent for INGetVisualCodeIntent {}
pub trait IINGetVisualCodeIntent: Sized + std::ops::Deref {
    unsafe fn initWithVisualCodeType_(&self, visualCodeType: INVisualCodeType) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithVisualCodeType : visualCodeType)
    }
    unsafe fn visualCodeType(&self) -> INVisualCodeType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, visualCodeType)
    }
}
pub trait PINGetVisualCodeIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleGetVisualCode_completion_(
        &self,
        intent: INGetVisualCodeIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleGetVisualCode : intent, completion : completion)
    }
    unsafe fn confirmGetVisualCode_completion_(
        &self,
        intent: INGetVisualCodeIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmGetVisualCode : intent, completion : completion)
    }
    unsafe fn resolveVisualCodeTypeForGetVisualCode_withCompletion_(
        &self,
        intent: INGetVisualCodeIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveVisualCodeTypeForGetVisualCode : intent, withCompletion : completion)
    }
}
pub trait PINCallsDomainHandling: Sized + std::ops::Deref {}
pub trait PINCarCommandsDomainHandling: Sized + std::ops::Deref {}
pub trait PINCarPlayDomainHandling: Sized + std::ops::Deref {}
pub trait PINWorkoutsDomainHandling: Sized + std::ops::Deref {}
pub trait PINRadioDomainHandling: Sized + std::ops::Deref {}
pub trait PINMessagesDomainHandling: Sized + std::ops::Deref {}
pub trait PINPaymentsDomainHandling: Sized + std::ops::Deref {}
pub trait PINPhotosDomainHandling: Sized + std::ops::Deref {}
pub trait PINRidesharingDomainHandling: Sized + std::ops::Deref {}
pub trait PINNotebookDomainHandling: Sized + std::ops::Deref {}
pub trait PINVisualCodeDomainHandling: Sized + std::ops::Deref {}
pub type INIntentHandlingStatus = NSInteger;
pub type INInteractionDirection = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INInteraction(pub id);
impl std::ops::Deref for INInteraction {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INInteraction {}
impl INInteraction {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INInteraction").unwrap(), alloc) })
    }
}
impl PNSSecureCoding for INInteraction {}
impl PNSCopying for INInteraction {}
impl INSObject for INInteraction {}
impl PNSObject for INInteraction {}
impl std::convert::TryFrom<NSObject> for INInteraction {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INInteraction, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INInteraction").unwrap()) };
        if is_kind_of {
            Ok(INInteraction(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INInteraction")
        }
    }
}
impl IINInteraction for INInteraction {}
pub trait IINInteraction: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithIntent_response_(
        &self,
        intent: INIntent,
        response: INIntentResponse,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithIntent : intent, response : response)
    }
    unsafe fn donateInteractionWithCompletion_(&self, completion: *mut ::std::os::raw::c_void)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, donateInteractionWithCompletion : completion)
    }
    unsafe fn intent(&self) -> INIntent
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, intent)
    }
    unsafe fn intentResponse(&self) -> INIntentResponse
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, intentResponse)
    }
    unsafe fn intentHandlingStatus(&self) -> INIntentHandlingStatus
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, intentHandlingStatus)
    }
    unsafe fn direction(&self) -> INInteractionDirection
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, direction)
    }
    unsafe fn setDirection_(&self, direction: INInteractionDirection)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDirection : direction)
    }
    unsafe fn dateInterval(&self) -> NSDateInterval
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, dateInterval)
    }
    unsafe fn setDateInterval_(&self, dateInterval: NSDateInterval)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDateInterval : dateInterval)
    }
    unsafe fn identifier(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, identifier)
    }
    unsafe fn setIdentifier_(&self, identifier: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setIdentifier : identifier)
    }
    unsafe fn groupIdentifier(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, groupIdentifier)
    }
    unsafe fn setGroupIdentifier_(&self, groupIdentifier: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setGroupIdentifier : groupIdentifier)
    }
    unsafe fn deleteAllInteractionsWithCompletion_(completion: *mut ::std::os::raw::c_void)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INInteraction").unwrap(), deleteAllInteractionsWithCompletion : completion)
    }
    unsafe fn deleteInteractionsWithIdentifiers_completion_(
        identifiers: NSArray,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INInteraction").unwrap(), deleteInteractionsWithIdentifiers : identifiers, completion : completion)
    }
    unsafe fn deleteInteractionsWithGroupIdentifier_completion_(
        groupIdentifier: NSString,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INInteraction").unwrap(), deleteInteractionsWithGroupIdentifier : groupIdentifier, completion : completion)
    }
}
pub trait PINSpeakable: Sized + std::ops::Deref {
    unsafe fn spokenPhrase(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, spokenPhrase)
    }
    unsafe fn pronunciationHint(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, pronunciationHint)
    }
    unsafe fn vocabularyIdentifier(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, vocabularyIdentifier)
    }
    unsafe fn alternativeSpeakableMatches(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, alternativeSpeakableMatches)
    }
    unsafe fn identifier(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, identifier)
    }
}
impl INInteraction_ for INInteraction {}
pub trait INInteraction_: Sized + std::ops::Deref {
    unsafe fn parameterValueForParameter_(&self, parameter: INParameter) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, parameterValueForParameter : parameter)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INParameter(pub id);
impl std::ops::Deref for INParameter {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INParameter {}
impl INParameter {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INParameter").unwrap(), alloc) })
    }
}
impl PNSSecureCoding for INParameter {}
impl PNSCopying for INParameter {}
impl INSObject for INParameter {}
impl PNSObject for INParameter {}
impl std::convert::TryFrom<NSObject> for INParameter {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INParameter, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INParameter").unwrap()) };
        if is_kind_of {
            Ok(INParameter(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INParameter")
        }
    }
}
impl IINParameter for INParameter {}
pub trait IINParameter: Sized + std::ops::Deref {
    unsafe fn isEqualToParameter_(&self, parameter: INParameter) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, isEqualToParameter : parameter)
    }
    unsafe fn setIndex_forSubKeyPath_(&self, index: NSUInteger, subKeyPath: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setIndex : index, forSubKeyPath : subKeyPath)
    }
    unsafe fn indexForSubKeyPath_(&self, subKeyPath: NSString) -> NSUInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, indexForSubKeyPath : subKeyPath)
    }
    unsafe fn parameterClass(&self) -> Class
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, parameterClass)
    }
    unsafe fn parameterKeyPath(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, parameterKeyPath)
    }
    unsafe fn parameterForClass_keyPath_(aClass: Class, keyPath: NSString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INParameter").unwrap(), parameterForClass : aClass, keyPath : keyPath)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INObjectSection(pub id);
impl std::ops::Deref for INObjectSection {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INObjectSection {}
impl INObjectSection {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INObjectSection").unwrap(), alloc) })
    }
}
impl PNSCopying for INObjectSection {}
impl PNSSecureCoding for INObjectSection {}
impl INSObject for INObjectSection {}
impl PNSObject for INObjectSection {}
impl std::convert::TryFrom<NSObject> for INObjectSection {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INObjectSection, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INObjectSection").unwrap()) };
        if is_kind_of {
            Ok(INObjectSection(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INObjectSection")
        }
    }
}
impl<ObjectType: 'static> IINObjectSection<ObjectType> for INObjectSection {}
pub trait IINObjectSection<ObjectType: 'static>: Sized + std::ops::Deref {
    unsafe fn initWithTitle_items_(&self, title: NSString, items: NSArray) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithTitle : title, items : items)
    }
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn title(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, title)
    }
    unsafe fn items(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, items)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INObjectCollection(pub id);
impl std::ops::Deref for INObjectCollection {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INObjectCollection {}
impl INObjectCollection {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INObjectCollection").unwrap(), alloc) })
    }
}
impl PNSCopying for INObjectCollection {}
impl PNSSecureCoding for INObjectCollection {}
impl INSObject for INObjectCollection {}
impl PNSObject for INObjectCollection {}
impl std::convert::TryFrom<NSObject> for INObjectCollection {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INObjectCollection, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INObjectCollection").unwrap()) };
        if is_kind_of {
            Ok(INObjectCollection(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INObjectCollection")
        }
    }
}
impl<ObjectType: 'static> IINObjectCollection<ObjectType> for INObjectCollection {}
pub trait IINObjectCollection<ObjectType: 'static>: Sized + std::ops::Deref {
    unsafe fn initWithSections_(&self, sections: NSArray) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithSections : sections)
    }
    unsafe fn initWithItems_(&self, items: NSArray) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithItems : items)
    }
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn sections(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sections)
    }
    unsafe fn allItems(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allItems)
    }
    unsafe fn usesIndexedCollation(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, usesIndexedCollation)
    }
    unsafe fn setUsesIndexedCollation_(&self, usesIndexedCollation: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setUsesIndexedCollation : usesIndexedCollation)
    }
}
pub type INAnswerCallIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INAnswerCallIntentResponse(pub id);
impl std::ops::Deref for INAnswerCallIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INAnswerCallIntentResponse {}
impl INAnswerCallIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INAnswerCallIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INAnswerCallIntentResponse {}
impl PNSCopying for INAnswerCallIntentResponse {}
impl PNSSecureCoding for INAnswerCallIntentResponse {}
impl From<INAnswerCallIntentResponse> for INIntentResponse {
    fn from(child: INAnswerCallIntentResponse) -> INIntentResponse {
        INIntentResponse(child.0)
    }
}
impl std::convert::TryFrom<INIntentResponse> for INAnswerCallIntentResponse {
    type Error = &'static str;
    fn try_from(parent: INIntentResponse) -> Result<INAnswerCallIntentResponse, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INAnswerCallIntentResponse").unwrap()) };
        if is_kind_of {
            Ok(INAnswerCallIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INAnswerCallIntentResponse")
        }
    }
}
impl INSObject for INAnswerCallIntentResponse {}
impl PNSObject for INAnswerCallIntentResponse {}
impl IINAnswerCallIntentResponse for INAnswerCallIntentResponse {}
pub trait IINAnswerCallIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INAnswerCallIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INAnswerCallIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
    unsafe fn callRecords(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, callRecords)
    }
    unsafe fn setCallRecords_(&self, callRecords: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCallRecords : callRecords)
    }
}
pub type INHangUpCallIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INHangUpCallIntentResponse(pub id);
impl std::ops::Deref for INHangUpCallIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INHangUpCallIntentResponse {}
impl INHangUpCallIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INHangUpCallIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INHangUpCallIntentResponse {}
impl PNSCopying for INHangUpCallIntentResponse {}
impl PNSSecureCoding for INHangUpCallIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INHangUpCallIntentResponse {
    type Error = &'static str;
    fn try_from(parent: INIntentResponse) -> Result<INHangUpCallIntentResponse, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INHangUpCallIntentResponse").unwrap()) };
        if is_kind_of {
            Ok(INHangUpCallIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INHangUpCallIntentResponse")
        }
    }
}
impl INSObject for INHangUpCallIntentResponse {}
impl PNSObject for INHangUpCallIntentResponse {}
impl IINHangUpCallIntentResponse for INHangUpCallIntentResponse {}
pub trait IINHangUpCallIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INHangUpCallIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INHangUpCallIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
}
pub type INSearchCallHistoryIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSearchCallHistoryIntentResponse(pub id);
impl std::ops::Deref for INSearchCallHistoryIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSearchCallHistoryIntentResponse {}
impl INSearchCallHistoryIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSearchCallHistoryIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INSearchCallHistoryIntentResponse {}
impl PNSCopying for INSearchCallHistoryIntentResponse {}
impl PNSSecureCoding for INSearchCallHistoryIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INSearchCallHistoryIntentResponse {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResponse,
    ) -> Result<INSearchCallHistoryIntentResponse, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSearchCallHistoryIntentResponse").unwrap())
        };
        if is_kind_of {
            Ok(INSearchCallHistoryIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INSearchCallHistoryIntentResponse")
        }
    }
}
impl INSObject for INSearchCallHistoryIntentResponse {}
impl PNSObject for INSearchCallHistoryIntentResponse {}
impl IINSearchCallHistoryIntentResponse for INSearchCallHistoryIntentResponse {}
pub trait IINSearchCallHistoryIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INSearchCallHistoryIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INSearchCallHistoryIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
    unsafe fn callRecords(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, callRecords)
    }
    unsafe fn setCallRecords_(&self, callRecords: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCallRecords : callRecords)
    }
}
pub type INStartAudioCallIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INStartAudioCallIntentResponse(pub id);
impl std::ops::Deref for INStartAudioCallIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INStartAudioCallIntentResponse {}
impl INStartAudioCallIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INStartAudioCallIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INStartAudioCallIntentResponse {}
impl PNSCopying for INStartAudioCallIntentResponse {}
impl PNSSecureCoding for INStartAudioCallIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INStartAudioCallIntentResponse {
    type Error = &'static str;
    fn try_from(parent: INIntentResponse) -> Result<INStartAudioCallIntentResponse, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INStartAudioCallIntentResponse").unwrap())
        };
        if is_kind_of {
            Ok(INStartAudioCallIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INStartAudioCallIntentResponse")
        }
    }
}
impl INSObject for INStartAudioCallIntentResponse {}
impl PNSObject for INStartAudioCallIntentResponse {}
impl IINStartAudioCallIntentResponse for INStartAudioCallIntentResponse {}
pub trait IINStartAudioCallIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INStartAudioCallIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INStartAudioCallIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
}
pub type INStartCallIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INStartCallIntentResponse(pub id);
impl std::ops::Deref for INStartCallIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INStartCallIntentResponse {}
impl INStartCallIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INStartCallIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INStartCallIntentResponse {}
impl PNSCopying for INStartCallIntentResponse {}
impl PNSSecureCoding for INStartCallIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INStartCallIntentResponse {
    type Error = &'static str;
    fn try_from(parent: INIntentResponse) -> Result<INStartCallIntentResponse, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INStartCallIntentResponse").unwrap()) };
        if is_kind_of {
            Ok(INStartCallIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INStartCallIntentResponse")
        }
    }
}
impl INSObject for INStartCallIntentResponse {}
impl PNSObject for INStartCallIntentResponse {}
impl IINStartCallIntentResponse for INStartCallIntentResponse {}
pub trait IINStartCallIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INStartCallIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INStartCallIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
}
pub type INStartVideoCallIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INStartVideoCallIntentResponse(pub id);
impl std::ops::Deref for INStartVideoCallIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INStartVideoCallIntentResponse {}
impl INStartVideoCallIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INStartVideoCallIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INStartVideoCallIntentResponse {}
impl PNSCopying for INStartVideoCallIntentResponse {}
impl PNSSecureCoding for INStartVideoCallIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INStartVideoCallIntentResponse {
    type Error = &'static str;
    fn try_from(parent: INIntentResponse) -> Result<INStartVideoCallIntentResponse, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INStartVideoCallIntentResponse").unwrap())
        };
        if is_kind_of {
            Ok(INStartVideoCallIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INStartVideoCallIntentResponse")
        }
    }
}
impl INSObject for INStartVideoCallIntentResponse {}
impl PNSObject for INStartVideoCallIntentResponse {}
impl IINStartVideoCallIntentResponse for INStartVideoCallIntentResponse {}
pub trait IINStartVideoCallIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INStartVideoCallIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INStartVideoCallIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
}
pub type INActivateCarSignalIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INActivateCarSignalIntentResponse(pub id);
impl std::ops::Deref for INActivateCarSignalIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INActivateCarSignalIntentResponse {}
impl INActivateCarSignalIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INActivateCarSignalIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INActivateCarSignalIntentResponse {}
impl PNSCopying for INActivateCarSignalIntentResponse {}
impl PNSSecureCoding for INActivateCarSignalIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INActivateCarSignalIntentResponse {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResponse,
    ) -> Result<INActivateCarSignalIntentResponse, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INActivateCarSignalIntentResponse").unwrap())
        };
        if is_kind_of {
            Ok(INActivateCarSignalIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INActivateCarSignalIntentResponse")
        }
    }
}
impl INSObject for INActivateCarSignalIntentResponse {}
impl PNSObject for INActivateCarSignalIntentResponse {}
impl IINActivateCarSignalIntentResponse for INActivateCarSignalIntentResponse {}
pub trait IINActivateCarSignalIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INActivateCarSignalIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INActivateCarSignalIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
    unsafe fn signals(&self) -> INCarSignalOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, signals)
    }
    unsafe fn setSignals_(&self, signals: INCarSignalOptions)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSignals : signals)
    }
}
pub type INGetCarLockStatusIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INGetCarLockStatusIntentResponse(pub id);
impl std::ops::Deref for INGetCarLockStatusIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INGetCarLockStatusIntentResponse {}
impl INGetCarLockStatusIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INGetCarLockStatusIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INGetCarLockStatusIntentResponse {}
impl PNSCopying for INGetCarLockStatusIntentResponse {}
impl PNSSecureCoding for INGetCarLockStatusIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INGetCarLockStatusIntentResponse {
    type Error = &'static str;
    fn try_from(parent: INIntentResponse) -> Result<INGetCarLockStatusIntentResponse, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INGetCarLockStatusIntentResponse").unwrap())
        };
        if is_kind_of {
            Ok(INGetCarLockStatusIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INGetCarLockStatusIntentResponse")
        }
    }
}
impl INSObject for INGetCarLockStatusIntentResponse {}
impl PNSObject for INGetCarLockStatusIntentResponse {}
impl IINGetCarLockStatusIntentResponse for INGetCarLockStatusIntentResponse {}
pub trait IINGetCarLockStatusIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INGetCarLockStatusIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INGetCarLockStatusIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
    unsafe fn locked(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, locked)
    }
    unsafe fn setLocked_(&self, locked: NSNumber)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLocked : locked)
    }
}
pub type INCarChargingConnectorType = NSString;
pub type INGetCarPowerLevelStatusIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INGetCarPowerLevelStatusIntentResponse(pub id);
impl std::ops::Deref for INGetCarPowerLevelStatusIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INGetCarPowerLevelStatusIntentResponse {}
impl INGetCarPowerLevelStatusIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INGetCarPowerLevelStatusIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INGetCarPowerLevelStatusIntentResponse {}
impl PNSCopying for INGetCarPowerLevelStatusIntentResponse {}
impl PNSSecureCoding for INGetCarPowerLevelStatusIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INGetCarPowerLevelStatusIntentResponse {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResponse,
    ) -> Result<INGetCarPowerLevelStatusIntentResponse, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INGetCarPowerLevelStatusIntentResponse").unwrap())
        };
        if is_kind_of {
            Ok(INGetCarPowerLevelStatusIntentResponse(parent.0))
        } else {
            Err ("This INIntentResponse cannot be downcasted to INGetCarPowerLevelStatusIntentResponse" ,)
        }
    }
}
impl INSObject for INGetCarPowerLevelStatusIntentResponse {}
impl PNSObject for INGetCarPowerLevelStatusIntentResponse {}
impl IINGetCarPowerLevelStatusIntentResponse for INGetCarPowerLevelStatusIntentResponse {}
pub trait IINGetCarPowerLevelStatusIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INGetCarPowerLevelStatusIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INGetCarPowerLevelStatusIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
    unsafe fn carIdentifier(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, carIdentifier)
    }
    unsafe fn setCarIdentifier_(&self, carIdentifier: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCarIdentifier : carIdentifier)
    }
    unsafe fn fuelPercentRemaining(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, fuelPercentRemaining)
    }
    unsafe fn setFuelPercentRemaining_(&self, fuelPercentRemaining: NSNumber)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFuelPercentRemaining : fuelPercentRemaining)
    }
    unsafe fn chargePercentRemaining(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, chargePercentRemaining)
    }
    unsafe fn setChargePercentRemaining_(&self, chargePercentRemaining: NSNumber)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setChargePercentRemaining : chargePercentRemaining)
    }
    unsafe fn distanceRemaining(&self) -> NSMeasurement
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, distanceRemaining)
    }
    unsafe fn setDistanceRemaining_(&self, distanceRemaining: NSMeasurement)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDistanceRemaining : distanceRemaining)
    }
    unsafe fn charging(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, charging)
    }
    unsafe fn setCharging_(&self, charging: NSNumber)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCharging : charging)
    }
    unsafe fn minutesToFull(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, minutesToFull)
    }
    unsafe fn setMinutesToFull_(&self, minutesToFull: NSNumber)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMinutesToFull : minutesToFull)
    }
    unsafe fn maximumDistance(&self) -> NSMeasurement
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, maximumDistance)
    }
    unsafe fn setMaximumDistance_(&self, maximumDistance: NSMeasurement)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMaximumDistance : maximumDistance)
    }
    unsafe fn distanceRemainingElectric(&self) -> NSMeasurement
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, distanceRemainingElectric)
    }
    unsafe fn setDistanceRemainingElectric_(&self, distanceRemainingElectric: NSMeasurement)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDistanceRemainingElectric : distanceRemainingElectric)
    }
    unsafe fn maximumDistanceElectric(&self) -> NSMeasurement
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, maximumDistanceElectric)
    }
    unsafe fn setMaximumDistanceElectric_(&self, maximumDistanceElectric: NSMeasurement)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMaximumDistanceElectric : maximumDistanceElectric)
    }
    unsafe fn distanceRemainingFuel(&self) -> NSMeasurement
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, distanceRemainingFuel)
    }
    unsafe fn setDistanceRemainingFuel_(&self, distanceRemainingFuel: NSMeasurement)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDistanceRemainingFuel : distanceRemainingFuel)
    }
    unsafe fn maximumDistanceFuel(&self) -> NSMeasurement
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, maximumDistanceFuel)
    }
    unsafe fn setMaximumDistanceFuel_(&self, maximumDistanceFuel: NSMeasurement)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMaximumDistanceFuel : maximumDistanceFuel)
    }
    unsafe fn consumptionFormulaArguments(&self) -> NSDictionary
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, consumptionFormulaArguments)
    }
    unsafe fn setConsumptionFormulaArguments_(&self, consumptionFormulaArguments: NSDictionary)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setConsumptionFormulaArguments : consumptionFormulaArguments)
    }
    unsafe fn chargingFormulaArguments(&self) -> NSDictionary
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, chargingFormulaArguments)
    }
    unsafe fn setChargingFormulaArguments_(&self, chargingFormulaArguments: NSDictionary)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setChargingFormulaArguments : chargingFormulaArguments)
    }
    unsafe fn dateOfLastStateUpdate(&self) -> NSDateComponents
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, dateOfLastStateUpdate)
    }
    unsafe fn setDateOfLastStateUpdate_(&self, dateOfLastStateUpdate: NSDateComponents)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDateOfLastStateUpdate : dateOfLastStateUpdate)
    }
    unsafe fn activeConnector(&self) -> INCarChargingConnectorType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, activeConnector)
    }
    unsafe fn setActiveConnector_(&self, activeConnector: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setActiveConnector : activeConnector)
    }
    unsafe fn maximumBatteryCapacity(&self) -> NSMeasurement
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, maximumBatteryCapacity)
    }
    unsafe fn setMaximumBatteryCapacity_(&self, maximumBatteryCapacity: NSMeasurement)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMaximumBatteryCapacity : maximumBatteryCapacity)
    }
    unsafe fn currentBatteryCapacity(&self) -> NSMeasurement
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, currentBatteryCapacity)
    }
    unsafe fn setCurrentBatteryCapacity_(&self, currentBatteryCapacity: NSMeasurement)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCurrentBatteryCapacity : currentBatteryCapacity)
    }
    unsafe fn minimumBatteryCapacity(&self) -> NSMeasurement
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, minimumBatteryCapacity)
    }
    unsafe fn setMinimumBatteryCapacity_(&self, minimumBatteryCapacity: NSMeasurement)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMinimumBatteryCapacity : minimumBatteryCapacity)
    }
}
pub type INListCarsIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INListCarsIntentResponse(pub id);
impl std::ops::Deref for INListCarsIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INListCarsIntentResponse {}
impl INListCarsIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INListCarsIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INListCarsIntentResponse {}
impl PNSCopying for INListCarsIntentResponse {}
impl PNSSecureCoding for INListCarsIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INListCarsIntentResponse {
    type Error = &'static str;
    fn try_from(parent: INIntentResponse) -> Result<INListCarsIntentResponse, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INListCarsIntentResponse").unwrap()) };
        if is_kind_of {
            Ok(INListCarsIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INListCarsIntentResponse")
        }
    }
}
impl INSObject for INListCarsIntentResponse {}
impl PNSObject for INListCarsIntentResponse {}
impl IINListCarsIntentResponse for INListCarsIntentResponse {}
pub trait IINListCarsIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INListCarsIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INListCarsIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
    unsafe fn cars(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, cars)
    }
    unsafe fn setCars_(&self, cars: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCars : cars)
    }
}
pub type INSaveProfileInCarIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSaveProfileInCarIntentResponse(pub id);
impl std::ops::Deref for INSaveProfileInCarIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSaveProfileInCarIntentResponse {}
impl INSaveProfileInCarIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSaveProfileInCarIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INSaveProfileInCarIntentResponse {}
impl PNSCopying for INSaveProfileInCarIntentResponse {}
impl PNSSecureCoding for INSaveProfileInCarIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INSaveProfileInCarIntentResponse {
    type Error = &'static str;
    fn try_from(parent: INIntentResponse) -> Result<INSaveProfileInCarIntentResponse, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSaveProfileInCarIntentResponse").unwrap())
        };
        if is_kind_of {
            Ok(INSaveProfileInCarIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INSaveProfileInCarIntentResponse")
        }
    }
}
impl INSObject for INSaveProfileInCarIntentResponse {}
impl PNSObject for INSaveProfileInCarIntentResponse {}
impl IINSaveProfileInCarIntentResponse for INSaveProfileInCarIntentResponse {}
pub trait IINSaveProfileInCarIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INSaveProfileInCarIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INSaveProfileInCarIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
}
pub type INSetAudioSourceInCarIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSetAudioSourceInCarIntentResponse(pub id);
impl std::ops::Deref for INSetAudioSourceInCarIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSetAudioSourceInCarIntentResponse {}
impl INSetAudioSourceInCarIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSetAudioSourceInCarIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INSetAudioSourceInCarIntentResponse {}
impl PNSCopying for INSetAudioSourceInCarIntentResponse {}
impl PNSSecureCoding for INSetAudioSourceInCarIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INSetAudioSourceInCarIntentResponse {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResponse,
    ) -> Result<INSetAudioSourceInCarIntentResponse, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSetAudioSourceInCarIntentResponse").unwrap())
        };
        if is_kind_of {
            Ok(INSetAudioSourceInCarIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INSetAudioSourceInCarIntentResponse")
        }
    }
}
impl INSObject for INSetAudioSourceInCarIntentResponse {}
impl PNSObject for INSetAudioSourceInCarIntentResponse {}
impl IINSetAudioSourceInCarIntentResponse for INSetAudioSourceInCarIntentResponse {}
pub trait IINSetAudioSourceInCarIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INSetAudioSourceInCarIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INSetAudioSourceInCarIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
}
pub type INSetCarLockStatusIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSetCarLockStatusIntentResponse(pub id);
impl std::ops::Deref for INSetCarLockStatusIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSetCarLockStatusIntentResponse {}
impl INSetCarLockStatusIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSetCarLockStatusIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INSetCarLockStatusIntentResponse {}
impl PNSCopying for INSetCarLockStatusIntentResponse {}
impl PNSSecureCoding for INSetCarLockStatusIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INSetCarLockStatusIntentResponse {
    type Error = &'static str;
    fn try_from(parent: INIntentResponse) -> Result<INSetCarLockStatusIntentResponse, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSetCarLockStatusIntentResponse").unwrap())
        };
        if is_kind_of {
            Ok(INSetCarLockStatusIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INSetCarLockStatusIntentResponse")
        }
    }
}
impl INSObject for INSetCarLockStatusIntentResponse {}
impl PNSObject for INSetCarLockStatusIntentResponse {}
impl IINSetCarLockStatusIntentResponse for INSetCarLockStatusIntentResponse {}
pub trait IINSetCarLockStatusIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INSetCarLockStatusIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INSetCarLockStatusIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
}
pub type INSetClimateSettingsInCarIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSetClimateSettingsInCarIntentResponse(pub id);
impl std::ops::Deref for INSetClimateSettingsInCarIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSetClimateSettingsInCarIntentResponse {}
impl INSetClimateSettingsInCarIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSetClimateSettingsInCarIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INSetClimateSettingsInCarIntentResponse {}
impl PNSCopying for INSetClimateSettingsInCarIntentResponse {}
impl PNSSecureCoding for INSetClimateSettingsInCarIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INSetClimateSettingsInCarIntentResponse {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResponse,
    ) -> Result<INSetClimateSettingsInCarIntentResponse, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSetClimateSettingsInCarIntentResponse").unwrap())
        };
        if is_kind_of {
            Ok(INSetClimateSettingsInCarIntentResponse(parent.0))
        } else {
            Err ("This INIntentResponse cannot be downcasted to INSetClimateSettingsInCarIntentResponse" ,)
        }
    }
}
impl INSObject for INSetClimateSettingsInCarIntentResponse {}
impl PNSObject for INSetClimateSettingsInCarIntentResponse {}
impl IINSetClimateSettingsInCarIntentResponse for INSetClimateSettingsInCarIntentResponse {}
pub trait IINSetClimateSettingsInCarIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INSetClimateSettingsInCarIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INSetClimateSettingsInCarIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
}
pub type INSetDefrosterSettingsInCarIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSetDefrosterSettingsInCarIntentResponse(pub id);
impl std::ops::Deref for INSetDefrosterSettingsInCarIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSetDefrosterSettingsInCarIntentResponse {}
impl INSetDefrosterSettingsInCarIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSetDefrosterSettingsInCarIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INSetDefrosterSettingsInCarIntentResponse {}
impl PNSCopying for INSetDefrosterSettingsInCarIntentResponse {}
impl PNSSecureCoding for INSetDefrosterSettingsInCarIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INSetDefrosterSettingsInCarIntentResponse {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResponse,
    ) -> Result<INSetDefrosterSettingsInCarIntentResponse, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSetDefrosterSettingsInCarIntentResponse").unwrap())
        };
        if is_kind_of {
            Ok(INSetDefrosterSettingsInCarIntentResponse(parent.0))
        } else {
            Err ("This INIntentResponse cannot be downcasted to INSetDefrosterSettingsInCarIntentResponse" ,)
        }
    }
}
impl INSObject for INSetDefrosterSettingsInCarIntentResponse {}
impl PNSObject for INSetDefrosterSettingsInCarIntentResponse {}
impl IINSetDefrosterSettingsInCarIntentResponse for INSetDefrosterSettingsInCarIntentResponse {}
pub trait IINSetDefrosterSettingsInCarIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INSetDefrosterSettingsInCarIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INSetDefrosterSettingsInCarIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
}
pub type INSetProfileInCarIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSetProfileInCarIntentResponse(pub id);
impl std::ops::Deref for INSetProfileInCarIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSetProfileInCarIntentResponse {}
impl INSetProfileInCarIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSetProfileInCarIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INSetProfileInCarIntentResponse {}
impl PNSCopying for INSetProfileInCarIntentResponse {}
impl PNSSecureCoding for INSetProfileInCarIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INSetProfileInCarIntentResponse {
    type Error = &'static str;
    fn try_from(parent: INIntentResponse) -> Result<INSetProfileInCarIntentResponse, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSetProfileInCarIntentResponse").unwrap())
        };
        if is_kind_of {
            Ok(INSetProfileInCarIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INSetProfileInCarIntentResponse")
        }
    }
}
impl INSObject for INSetProfileInCarIntentResponse {}
impl PNSObject for INSetProfileInCarIntentResponse {}
impl IINSetProfileInCarIntentResponse for INSetProfileInCarIntentResponse {}
pub trait IINSetProfileInCarIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INSetProfileInCarIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INSetProfileInCarIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
}
pub type INSetSeatSettingsInCarIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSetSeatSettingsInCarIntentResponse(pub id);
impl std::ops::Deref for INSetSeatSettingsInCarIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSetSeatSettingsInCarIntentResponse {}
impl INSetSeatSettingsInCarIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSetSeatSettingsInCarIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INSetSeatSettingsInCarIntentResponse {}
impl PNSCopying for INSetSeatSettingsInCarIntentResponse {}
impl PNSSecureCoding for INSetSeatSettingsInCarIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INSetSeatSettingsInCarIntentResponse {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResponse,
    ) -> Result<INSetSeatSettingsInCarIntentResponse, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSetSeatSettingsInCarIntentResponse").unwrap())
        };
        if is_kind_of {
            Ok(INSetSeatSettingsInCarIntentResponse(parent.0))
        } else {
            Err ("This INIntentResponse cannot be downcasted to INSetSeatSettingsInCarIntentResponse" ,)
        }
    }
}
impl INSObject for INSetSeatSettingsInCarIntentResponse {}
impl PNSObject for INSetSeatSettingsInCarIntentResponse {}
impl IINSetSeatSettingsInCarIntentResponse for INSetSeatSettingsInCarIntentResponse {}
pub trait IINSetSeatSettingsInCarIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INSetSeatSettingsInCarIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INSetSeatSettingsInCarIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
}
pub type INCancelWorkoutIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INCancelWorkoutIntentResponse(pub id);
impl std::ops::Deref for INCancelWorkoutIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INCancelWorkoutIntentResponse {}
impl INCancelWorkoutIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INCancelWorkoutIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INCancelWorkoutIntentResponse {}
impl PNSCopying for INCancelWorkoutIntentResponse {}
impl PNSSecureCoding for INCancelWorkoutIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INCancelWorkoutIntentResponse {
    type Error = &'static str;
    fn try_from(parent: INIntentResponse) -> Result<INCancelWorkoutIntentResponse, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INCancelWorkoutIntentResponse").unwrap())
        };
        if is_kind_of {
            Ok(INCancelWorkoutIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INCancelWorkoutIntentResponse")
        }
    }
}
impl INSObject for INCancelWorkoutIntentResponse {}
impl PNSObject for INCancelWorkoutIntentResponse {}
impl IINCancelWorkoutIntentResponse for INCancelWorkoutIntentResponse {}
pub trait IINCancelWorkoutIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INCancelWorkoutIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INCancelWorkoutIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
}
pub type INEndWorkoutIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INEndWorkoutIntentResponse(pub id);
impl std::ops::Deref for INEndWorkoutIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INEndWorkoutIntentResponse {}
impl INEndWorkoutIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INEndWorkoutIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INEndWorkoutIntentResponse {}
impl PNSCopying for INEndWorkoutIntentResponse {}
impl PNSSecureCoding for INEndWorkoutIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INEndWorkoutIntentResponse {
    type Error = &'static str;
    fn try_from(parent: INIntentResponse) -> Result<INEndWorkoutIntentResponse, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INEndWorkoutIntentResponse").unwrap()) };
        if is_kind_of {
            Ok(INEndWorkoutIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INEndWorkoutIntentResponse")
        }
    }
}
impl INSObject for INEndWorkoutIntentResponse {}
impl PNSObject for INEndWorkoutIntentResponse {}
impl IINEndWorkoutIntentResponse for INEndWorkoutIntentResponse {}
pub trait IINEndWorkoutIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INEndWorkoutIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INEndWorkoutIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
}
pub type INPauseWorkoutIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INPauseWorkoutIntentResponse(pub id);
impl std::ops::Deref for INPauseWorkoutIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INPauseWorkoutIntentResponse {}
impl INPauseWorkoutIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INPauseWorkoutIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INPauseWorkoutIntentResponse {}
impl PNSCopying for INPauseWorkoutIntentResponse {}
impl PNSSecureCoding for INPauseWorkoutIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INPauseWorkoutIntentResponse {
    type Error = &'static str;
    fn try_from(parent: INIntentResponse) -> Result<INPauseWorkoutIntentResponse, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INPauseWorkoutIntentResponse").unwrap()) };
        if is_kind_of {
            Ok(INPauseWorkoutIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INPauseWorkoutIntentResponse")
        }
    }
}
impl INSObject for INPauseWorkoutIntentResponse {}
impl PNSObject for INPauseWorkoutIntentResponse {}
impl IINPauseWorkoutIntentResponse for INPauseWorkoutIntentResponse {}
pub trait IINPauseWorkoutIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INPauseWorkoutIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INPauseWorkoutIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
}
pub type INResumeWorkoutIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INResumeWorkoutIntentResponse(pub id);
impl std::ops::Deref for INResumeWorkoutIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INResumeWorkoutIntentResponse {}
impl INResumeWorkoutIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INResumeWorkoutIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INResumeWorkoutIntentResponse {}
impl PNSCopying for INResumeWorkoutIntentResponse {}
impl PNSSecureCoding for INResumeWorkoutIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INResumeWorkoutIntentResponse {
    type Error = &'static str;
    fn try_from(parent: INIntentResponse) -> Result<INResumeWorkoutIntentResponse, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INResumeWorkoutIntentResponse").unwrap())
        };
        if is_kind_of {
            Ok(INResumeWorkoutIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INResumeWorkoutIntentResponse")
        }
    }
}
impl INSObject for INResumeWorkoutIntentResponse {}
impl PNSObject for INResumeWorkoutIntentResponse {}
impl IINResumeWorkoutIntentResponse for INResumeWorkoutIntentResponse {}
pub trait IINResumeWorkoutIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INResumeWorkoutIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INResumeWorkoutIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
}
pub type INStartWorkoutIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INStartWorkoutIntentResponse(pub id);
impl std::ops::Deref for INStartWorkoutIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INStartWorkoutIntentResponse {}
impl INStartWorkoutIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INStartWorkoutIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INStartWorkoutIntentResponse {}
impl PNSCopying for INStartWorkoutIntentResponse {}
impl PNSSecureCoding for INStartWorkoutIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INStartWorkoutIntentResponse {
    type Error = &'static str;
    fn try_from(parent: INIntentResponse) -> Result<INStartWorkoutIntentResponse, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INStartWorkoutIntentResponse").unwrap()) };
        if is_kind_of {
            Ok(INStartWorkoutIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INStartWorkoutIntentResponse")
        }
    }
}
impl INSObject for INStartWorkoutIntentResponse {}
impl PNSObject for INStartWorkoutIntentResponse {}
impl IINStartWorkoutIntentResponse for INStartWorkoutIntentResponse {}
pub trait IINStartWorkoutIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INStartWorkoutIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INStartWorkoutIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
}
pub type INShareFocusStatusIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INShareFocusStatusIntentResponse(pub id);
impl std::ops::Deref for INShareFocusStatusIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INShareFocusStatusIntentResponse {}
impl INShareFocusStatusIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INShareFocusStatusIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INShareFocusStatusIntentResponse {}
impl PNSCopying for INShareFocusStatusIntentResponse {}
impl PNSSecureCoding for INShareFocusStatusIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INShareFocusStatusIntentResponse {
    type Error = &'static str;
    fn try_from(parent: INIntentResponse) -> Result<INShareFocusStatusIntentResponse, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INShareFocusStatusIntentResponse").unwrap())
        };
        if is_kind_of {
            Ok(INShareFocusStatusIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INShareFocusStatusIntentResponse")
        }
    }
}
impl INSObject for INShareFocusStatusIntentResponse {}
impl PNSObject for INShareFocusStatusIntentResponse {}
impl IINShareFocusStatusIntentResponse for INShareFocusStatusIntentResponse {}
pub trait IINShareFocusStatusIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INShareFocusStatusIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INShareFocusStatusIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
}
pub type INAddMediaIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INAddMediaIntentResponse(pub id);
impl std::ops::Deref for INAddMediaIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INAddMediaIntentResponse {}
impl INAddMediaIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INAddMediaIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INAddMediaIntentResponse {}
impl PNSCopying for INAddMediaIntentResponse {}
impl PNSSecureCoding for INAddMediaIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INAddMediaIntentResponse {
    type Error = &'static str;
    fn try_from(parent: INIntentResponse) -> Result<INAddMediaIntentResponse, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INAddMediaIntentResponse").unwrap()) };
        if is_kind_of {
            Ok(INAddMediaIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INAddMediaIntentResponse")
        }
    }
}
impl INSObject for INAddMediaIntentResponse {}
impl PNSObject for INAddMediaIntentResponse {}
impl IINAddMediaIntentResponse for INAddMediaIntentResponse {}
pub trait IINAddMediaIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INAddMediaIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INAddMediaIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
}
pub type INPlayMediaIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INPlayMediaIntentResponse(pub id);
impl std::ops::Deref for INPlayMediaIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INPlayMediaIntentResponse {}
impl INPlayMediaIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INPlayMediaIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INPlayMediaIntentResponse {}
impl PNSCopying for INPlayMediaIntentResponse {}
impl PNSSecureCoding for INPlayMediaIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INPlayMediaIntentResponse {
    type Error = &'static str;
    fn try_from(parent: INIntentResponse) -> Result<INPlayMediaIntentResponse, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INPlayMediaIntentResponse").unwrap()) };
        if is_kind_of {
            Ok(INPlayMediaIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INPlayMediaIntentResponse")
        }
    }
}
impl INSObject for INPlayMediaIntentResponse {}
impl PNSObject for INPlayMediaIntentResponse {}
impl IINPlayMediaIntentResponse for INPlayMediaIntentResponse {}
pub trait IINPlayMediaIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INPlayMediaIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INPlayMediaIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
    unsafe fn nowPlayingInfo(&self) -> NSDictionary
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, nowPlayingInfo)
    }
    unsafe fn setNowPlayingInfo_(&self, nowPlayingInfo: NSDictionary)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setNowPlayingInfo : nowPlayingInfo)
    }
}
pub type INSearchForMediaIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSearchForMediaIntentResponse(pub id);
impl std::ops::Deref for INSearchForMediaIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSearchForMediaIntentResponse {}
impl INSearchForMediaIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSearchForMediaIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INSearchForMediaIntentResponse {}
impl PNSCopying for INSearchForMediaIntentResponse {}
impl PNSSecureCoding for INSearchForMediaIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INSearchForMediaIntentResponse {
    type Error = &'static str;
    fn try_from(parent: INIntentResponse) -> Result<INSearchForMediaIntentResponse, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSearchForMediaIntentResponse").unwrap())
        };
        if is_kind_of {
            Ok(INSearchForMediaIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INSearchForMediaIntentResponse")
        }
    }
}
impl INSObject for INSearchForMediaIntentResponse {}
impl PNSObject for INSearchForMediaIntentResponse {}
impl IINSearchForMediaIntentResponse for INSearchForMediaIntentResponse {}
pub trait IINSearchForMediaIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INSearchForMediaIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INSearchForMediaIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
    unsafe fn mediaItems(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, mediaItems)
    }
    unsafe fn setMediaItems_(&self, mediaItems: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMediaItems : mediaItems)
    }
}
pub type INUpdateMediaAffinityIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INUpdateMediaAffinityIntentResponse(pub id);
impl std::ops::Deref for INUpdateMediaAffinityIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INUpdateMediaAffinityIntentResponse {}
impl INUpdateMediaAffinityIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INUpdateMediaAffinityIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INUpdateMediaAffinityIntentResponse {}
impl PNSCopying for INUpdateMediaAffinityIntentResponse {}
impl PNSSecureCoding for INUpdateMediaAffinityIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INUpdateMediaAffinityIntentResponse {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResponse,
    ) -> Result<INUpdateMediaAffinityIntentResponse, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INUpdateMediaAffinityIntentResponse").unwrap())
        };
        if is_kind_of {
            Ok(INUpdateMediaAffinityIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INUpdateMediaAffinityIntentResponse")
        }
    }
}
impl INSObject for INUpdateMediaAffinityIntentResponse {}
impl PNSObject for INUpdateMediaAffinityIntentResponse {}
impl IINUpdateMediaAffinityIntentResponse for INUpdateMediaAffinityIntentResponse {}
pub trait IINUpdateMediaAffinityIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INUpdateMediaAffinityIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INUpdateMediaAffinityIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
}
pub type INSetRadioStationIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSetRadioStationIntentResponse(pub id);
impl std::ops::Deref for INSetRadioStationIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSetRadioStationIntentResponse {}
impl INSetRadioStationIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSetRadioStationIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INSetRadioStationIntentResponse {}
impl PNSCopying for INSetRadioStationIntentResponse {}
impl PNSSecureCoding for INSetRadioStationIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INSetRadioStationIntentResponse {
    type Error = &'static str;
    fn try_from(parent: INIntentResponse) -> Result<INSetRadioStationIntentResponse, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSetRadioStationIntentResponse").unwrap())
        };
        if is_kind_of {
            Ok(INSetRadioStationIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INSetRadioStationIntentResponse")
        }
    }
}
impl INSObject for INSetRadioStationIntentResponse {}
impl PNSObject for INSetRadioStationIntentResponse {}
impl IINSetRadioStationIntentResponse for INSetRadioStationIntentResponse {}
pub trait IINSetRadioStationIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INSetRadioStationIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INSetRadioStationIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
}
pub type INEditMessageIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INEditMessageIntentResponse(pub id);
impl std::ops::Deref for INEditMessageIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INEditMessageIntentResponse {}
impl INEditMessageIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INEditMessageIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INEditMessageIntentResponse {}
impl PNSCopying for INEditMessageIntentResponse {}
impl PNSSecureCoding for INEditMessageIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INEditMessageIntentResponse {
    type Error = &'static str;
    fn try_from(parent: INIntentResponse) -> Result<INEditMessageIntentResponse, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INEditMessageIntentResponse").unwrap()) };
        if is_kind_of {
            Ok(INEditMessageIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INEditMessageIntentResponse")
        }
    }
}
impl INSObject for INEditMessageIntentResponse {}
impl PNSObject for INEditMessageIntentResponse {}
impl IINEditMessageIntentResponse for INEditMessageIntentResponse {}
pub trait IINEditMessageIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INEditMessageIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INEditMessageIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
}
pub type INSearchForMessagesIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSearchForMessagesIntentResponse(pub id);
impl std::ops::Deref for INSearchForMessagesIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSearchForMessagesIntentResponse {}
impl INSearchForMessagesIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSearchForMessagesIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INSearchForMessagesIntentResponse {}
impl PNSCopying for INSearchForMessagesIntentResponse {}
impl PNSSecureCoding for INSearchForMessagesIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INSearchForMessagesIntentResponse {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResponse,
    ) -> Result<INSearchForMessagesIntentResponse, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSearchForMessagesIntentResponse").unwrap())
        };
        if is_kind_of {
            Ok(INSearchForMessagesIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INSearchForMessagesIntentResponse")
        }
    }
}
impl INSObject for INSearchForMessagesIntentResponse {}
impl PNSObject for INSearchForMessagesIntentResponse {}
impl IINSearchForMessagesIntentResponse for INSearchForMessagesIntentResponse {}
pub trait IINSearchForMessagesIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INSearchForMessagesIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INSearchForMessagesIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
    unsafe fn messages(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, messages)
    }
    unsafe fn setMessages_(&self, messages: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMessages : messages)
    }
}
pub type INSendMessageIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSendMessageIntentResponse(pub id);
impl std::ops::Deref for INSendMessageIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSendMessageIntentResponse {}
impl INSendMessageIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSendMessageIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INSendMessageIntentResponse {}
impl PNSCopying for INSendMessageIntentResponse {}
impl PNSSecureCoding for INSendMessageIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INSendMessageIntentResponse {
    type Error = &'static str;
    fn try_from(parent: INIntentResponse) -> Result<INSendMessageIntentResponse, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSendMessageIntentResponse").unwrap()) };
        if is_kind_of {
            Ok(INSendMessageIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INSendMessageIntentResponse")
        }
    }
}
impl INSObject for INSendMessageIntentResponse {}
impl PNSObject for INSendMessageIntentResponse {}
impl IINSendMessageIntentResponse for INSendMessageIntentResponse {}
pub trait IINSendMessageIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INSendMessageIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INSendMessageIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
    unsafe fn sentMessages(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sentMessages)
    }
    unsafe fn setSentMessages_(&self, sentMessages: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSentMessages : sentMessages)
    }
}
pub type INSetMessageAttributeIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSetMessageAttributeIntentResponse(pub id);
impl std::ops::Deref for INSetMessageAttributeIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSetMessageAttributeIntentResponse {}
impl INSetMessageAttributeIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSetMessageAttributeIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INSetMessageAttributeIntentResponse {}
impl PNSCopying for INSetMessageAttributeIntentResponse {}
impl PNSSecureCoding for INSetMessageAttributeIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INSetMessageAttributeIntentResponse {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResponse,
    ) -> Result<INSetMessageAttributeIntentResponse, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSetMessageAttributeIntentResponse").unwrap())
        };
        if is_kind_of {
            Ok(INSetMessageAttributeIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INSetMessageAttributeIntentResponse")
        }
    }
}
impl INSObject for INSetMessageAttributeIntentResponse {}
impl PNSObject for INSetMessageAttributeIntentResponse {}
impl IINSetMessageAttributeIntentResponse for INSetMessageAttributeIntentResponse {}
pub trait IINSetMessageAttributeIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INSetMessageAttributeIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INSetMessageAttributeIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
}
pub type INUnsendMessagesIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INUnsendMessagesIntentResponse(pub id);
impl std::ops::Deref for INUnsendMessagesIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INUnsendMessagesIntentResponse {}
impl INUnsendMessagesIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INUnsendMessagesIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INUnsendMessagesIntentResponse {}
impl PNSCopying for INUnsendMessagesIntentResponse {}
impl PNSSecureCoding for INUnsendMessagesIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INUnsendMessagesIntentResponse {
    type Error = &'static str;
    fn try_from(parent: INIntentResponse) -> Result<INUnsendMessagesIntentResponse, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INUnsendMessagesIntentResponse").unwrap())
        };
        if is_kind_of {
            Ok(INUnsendMessagesIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INUnsendMessagesIntentResponse")
        }
    }
}
impl INSObject for INUnsendMessagesIntentResponse {}
impl PNSObject for INUnsendMessagesIntentResponse {}
impl IINUnsendMessagesIntentResponse for INUnsendMessagesIntentResponse {}
pub trait IINUnsendMessagesIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INUnsendMessagesIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INUnsendMessagesIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
}
pub type INAddTasksIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INAddTasksIntentResponse(pub id);
impl std::ops::Deref for INAddTasksIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INAddTasksIntentResponse {}
impl INAddTasksIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INAddTasksIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INAddTasksIntentResponse {}
impl PNSCopying for INAddTasksIntentResponse {}
impl PNSSecureCoding for INAddTasksIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INAddTasksIntentResponse {
    type Error = &'static str;
    fn try_from(parent: INIntentResponse) -> Result<INAddTasksIntentResponse, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INAddTasksIntentResponse").unwrap()) };
        if is_kind_of {
            Ok(INAddTasksIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INAddTasksIntentResponse")
        }
    }
}
impl INSObject for INAddTasksIntentResponse {}
impl PNSObject for INAddTasksIntentResponse {}
impl IINAddTasksIntentResponse for INAddTasksIntentResponse {}
pub trait IINAddTasksIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INAddTasksIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INAddTasksIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
    unsafe fn modifiedTaskList(&self) -> INTaskList
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, modifiedTaskList)
    }
    unsafe fn setModifiedTaskList_(&self, modifiedTaskList: INTaskList)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setModifiedTaskList : modifiedTaskList)
    }
    unsafe fn addedTasks(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, addedTasks)
    }
    unsafe fn setAddedTasks_(&self, addedTasks: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAddedTasks : addedTasks)
    }
}
pub type INAppendToNoteIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INAppendToNoteIntentResponse(pub id);
impl std::ops::Deref for INAppendToNoteIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INAppendToNoteIntentResponse {}
impl INAppendToNoteIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INAppendToNoteIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INAppendToNoteIntentResponse {}
impl PNSCopying for INAppendToNoteIntentResponse {}
impl PNSSecureCoding for INAppendToNoteIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INAppendToNoteIntentResponse {
    type Error = &'static str;
    fn try_from(parent: INIntentResponse) -> Result<INAppendToNoteIntentResponse, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INAppendToNoteIntentResponse").unwrap()) };
        if is_kind_of {
            Ok(INAppendToNoteIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INAppendToNoteIntentResponse")
        }
    }
}
impl INSObject for INAppendToNoteIntentResponse {}
impl PNSObject for INAppendToNoteIntentResponse {}
impl IINAppendToNoteIntentResponse for INAppendToNoteIntentResponse {}
pub trait IINAppendToNoteIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INAppendToNoteIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INAppendToNoteIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
    unsafe fn note(&self) -> INNote
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, note)
    }
    unsafe fn setNote_(&self, note: INNote)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setNote : note)
    }
}
pub type INCreateNoteIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INCreateNoteIntentResponse(pub id);
impl std::ops::Deref for INCreateNoteIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INCreateNoteIntentResponse {}
impl INCreateNoteIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INCreateNoteIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INCreateNoteIntentResponse {}
impl PNSCopying for INCreateNoteIntentResponse {}
impl PNSSecureCoding for INCreateNoteIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INCreateNoteIntentResponse {
    type Error = &'static str;
    fn try_from(parent: INIntentResponse) -> Result<INCreateNoteIntentResponse, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INCreateNoteIntentResponse").unwrap()) };
        if is_kind_of {
            Ok(INCreateNoteIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INCreateNoteIntentResponse")
        }
    }
}
impl INSObject for INCreateNoteIntentResponse {}
impl PNSObject for INCreateNoteIntentResponse {}
impl IINCreateNoteIntentResponse for INCreateNoteIntentResponse {}
pub trait IINCreateNoteIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INCreateNoteIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INCreateNoteIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
    unsafe fn createdNote(&self) -> INNote
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, createdNote)
    }
    unsafe fn setCreatedNote_(&self, createdNote: INNote)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCreatedNote : createdNote)
    }
}
pub type INCreateTaskListIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INCreateTaskListIntentResponse(pub id);
impl std::ops::Deref for INCreateTaskListIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INCreateTaskListIntentResponse {}
impl INCreateTaskListIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INCreateTaskListIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INCreateTaskListIntentResponse {}
impl PNSCopying for INCreateTaskListIntentResponse {}
impl PNSSecureCoding for INCreateTaskListIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INCreateTaskListIntentResponse {
    type Error = &'static str;
    fn try_from(parent: INIntentResponse) -> Result<INCreateTaskListIntentResponse, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INCreateTaskListIntentResponse").unwrap())
        };
        if is_kind_of {
            Ok(INCreateTaskListIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INCreateTaskListIntentResponse")
        }
    }
}
impl INSObject for INCreateTaskListIntentResponse {}
impl PNSObject for INCreateTaskListIntentResponse {}
impl IINCreateTaskListIntentResponse for INCreateTaskListIntentResponse {}
pub trait IINCreateTaskListIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INCreateTaskListIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INCreateTaskListIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
    unsafe fn createdTaskList(&self) -> INTaskList
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, createdTaskList)
    }
    unsafe fn setCreatedTaskList_(&self, createdTaskList: INTaskList)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCreatedTaskList : createdTaskList)
    }
}
pub type INDeleteTasksIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INDeleteTasksIntentResponse(pub id);
impl std::ops::Deref for INDeleteTasksIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INDeleteTasksIntentResponse {}
impl INDeleteTasksIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INDeleteTasksIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INDeleteTasksIntentResponse {}
impl PNSCopying for INDeleteTasksIntentResponse {}
impl PNSSecureCoding for INDeleteTasksIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INDeleteTasksIntentResponse {
    type Error = &'static str;
    fn try_from(parent: INIntentResponse) -> Result<INDeleteTasksIntentResponse, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INDeleteTasksIntentResponse").unwrap()) };
        if is_kind_of {
            Ok(INDeleteTasksIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INDeleteTasksIntentResponse")
        }
    }
}
impl INSObject for INDeleteTasksIntentResponse {}
impl PNSObject for INDeleteTasksIntentResponse {}
impl IINDeleteTasksIntentResponse for INDeleteTasksIntentResponse {}
pub trait IINDeleteTasksIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INDeleteTasksIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INDeleteTasksIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
    unsafe fn deletedTasks(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, deletedTasks)
    }
    unsafe fn setDeletedTasks_(&self, deletedTasks: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDeletedTasks : deletedTasks)
    }
}
pub type INSortType = NSInteger;
pub type INSearchForNotebookItemsIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSearchForNotebookItemsIntentResponse(pub id);
impl std::ops::Deref for INSearchForNotebookItemsIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSearchForNotebookItemsIntentResponse {}
impl INSearchForNotebookItemsIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSearchForNotebookItemsIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INSearchForNotebookItemsIntentResponse {}
impl PNSCopying for INSearchForNotebookItemsIntentResponse {}
impl PNSSecureCoding for INSearchForNotebookItemsIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INSearchForNotebookItemsIntentResponse {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResponse,
    ) -> Result<INSearchForNotebookItemsIntentResponse, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSearchForNotebookItemsIntentResponse").unwrap())
        };
        if is_kind_of {
            Ok(INSearchForNotebookItemsIntentResponse(parent.0))
        } else {
            Err ("This INIntentResponse cannot be downcasted to INSearchForNotebookItemsIntentResponse" ,)
        }
    }
}
impl INSObject for INSearchForNotebookItemsIntentResponse {}
impl PNSObject for INSearchForNotebookItemsIntentResponse {}
impl IINSearchForNotebookItemsIntentResponse for INSearchForNotebookItemsIntentResponse {}
pub trait IINSearchForNotebookItemsIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INSearchForNotebookItemsIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INSearchForNotebookItemsIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
    unsafe fn notes(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, notes)
    }
    unsafe fn setNotes_(&self, notes: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setNotes : notes)
    }
    unsafe fn taskLists(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, taskLists)
    }
    unsafe fn setTaskLists_(&self, taskLists: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTaskLists : taskLists)
    }
    unsafe fn tasks(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tasks)
    }
    unsafe fn setTasks_(&self, tasks: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTasks : tasks)
    }
    unsafe fn sortType(&self) -> INSortType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sortType)
    }
    unsafe fn setSortType_(&self, sortType: INSortType)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSortType : sortType)
    }
}
pub type INSetTaskAttributeIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSetTaskAttributeIntentResponse(pub id);
impl std::ops::Deref for INSetTaskAttributeIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSetTaskAttributeIntentResponse {}
impl INSetTaskAttributeIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSetTaskAttributeIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INSetTaskAttributeIntentResponse {}
impl PNSCopying for INSetTaskAttributeIntentResponse {}
impl PNSSecureCoding for INSetTaskAttributeIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INSetTaskAttributeIntentResponse {
    type Error = &'static str;
    fn try_from(parent: INIntentResponse) -> Result<INSetTaskAttributeIntentResponse, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSetTaskAttributeIntentResponse").unwrap())
        };
        if is_kind_of {
            Ok(INSetTaskAttributeIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INSetTaskAttributeIntentResponse")
        }
    }
}
impl INSObject for INSetTaskAttributeIntentResponse {}
impl PNSObject for INSetTaskAttributeIntentResponse {}
impl IINSetTaskAttributeIntentResponse for INSetTaskAttributeIntentResponse {}
pub trait IINSetTaskAttributeIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INSetTaskAttributeIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INSetTaskAttributeIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
    unsafe fn modifiedTask(&self) -> INTask
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, modifiedTask)
    }
    unsafe fn setModifiedTask_(&self, modifiedTask: INTask)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setModifiedTask : modifiedTask)
    }
}
pub type INSnoozeTasksIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSnoozeTasksIntentResponse(pub id);
impl std::ops::Deref for INSnoozeTasksIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSnoozeTasksIntentResponse {}
impl INSnoozeTasksIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSnoozeTasksIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INSnoozeTasksIntentResponse {}
impl PNSCopying for INSnoozeTasksIntentResponse {}
impl PNSSecureCoding for INSnoozeTasksIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INSnoozeTasksIntentResponse {
    type Error = &'static str;
    fn try_from(parent: INIntentResponse) -> Result<INSnoozeTasksIntentResponse, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSnoozeTasksIntentResponse").unwrap()) };
        if is_kind_of {
            Ok(INSnoozeTasksIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INSnoozeTasksIntentResponse")
        }
    }
}
impl INSObject for INSnoozeTasksIntentResponse {}
impl PNSObject for INSnoozeTasksIntentResponse {}
impl IINSnoozeTasksIntentResponse for INSnoozeTasksIntentResponse {}
pub trait IINSnoozeTasksIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INSnoozeTasksIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INSnoozeTasksIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
    unsafe fn snoozedTasks(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, snoozedTasks)
    }
    unsafe fn setSnoozedTasks_(&self, snoozedTasks: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSnoozedTasks : snoozedTasks)
    }
}
pub type INPayBillIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INPayBillIntentResponse(pub id);
impl std::ops::Deref for INPayBillIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INPayBillIntentResponse {}
impl INPayBillIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INPayBillIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INPayBillIntentResponse {}
impl PNSCopying for INPayBillIntentResponse {}
impl PNSSecureCoding for INPayBillIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INPayBillIntentResponse {
    type Error = &'static str;
    fn try_from(parent: INIntentResponse) -> Result<INPayBillIntentResponse, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INPayBillIntentResponse").unwrap()) };
        if is_kind_of {
            Ok(INPayBillIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INPayBillIntentResponse")
        }
    }
}
impl INSObject for INPayBillIntentResponse {}
impl PNSObject for INPayBillIntentResponse {}
impl IINPayBillIntentResponse for INPayBillIntentResponse {}
pub trait IINPayBillIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INPayBillIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INPayBillIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
    unsafe fn fromAccount(&self) -> INPaymentAccount
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, fromAccount)
    }
    unsafe fn setFromAccount_(&self, fromAccount: INPaymentAccount)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFromAccount : fromAccount)
    }
    unsafe fn billDetails(&self) -> INBillDetails
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, billDetails)
    }
    unsafe fn setBillDetails_(&self, billDetails: INBillDetails)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBillDetails : billDetails)
    }
    unsafe fn transactionAmount(&self) -> INPaymentAmount
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, transactionAmount)
    }
    unsafe fn setTransactionAmount_(&self, transactionAmount: INPaymentAmount)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTransactionAmount : transactionAmount)
    }
    unsafe fn transactionScheduledDate(&self) -> INDateComponentsRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, transactionScheduledDate)
    }
    unsafe fn setTransactionScheduledDate_(&self, transactionScheduledDate: INDateComponentsRange)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTransactionScheduledDate : transactionScheduledDate)
    }
    unsafe fn transactionNote(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, transactionNote)
    }
    unsafe fn setTransactionNote_(&self, transactionNote: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTransactionNote : transactionNote)
    }
}
pub type INRequestPaymentIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INRequestPaymentIntentResponse(pub id);
impl std::ops::Deref for INRequestPaymentIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INRequestPaymentIntentResponse {}
impl INRequestPaymentIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INRequestPaymentIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INRequestPaymentIntentResponse {}
impl PNSCopying for INRequestPaymentIntentResponse {}
impl PNSSecureCoding for INRequestPaymentIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INRequestPaymentIntentResponse {
    type Error = &'static str;
    fn try_from(parent: INIntentResponse) -> Result<INRequestPaymentIntentResponse, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INRequestPaymentIntentResponse").unwrap())
        };
        if is_kind_of {
            Ok(INRequestPaymentIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INRequestPaymentIntentResponse")
        }
    }
}
impl INSObject for INRequestPaymentIntentResponse {}
impl PNSObject for INRequestPaymentIntentResponse {}
impl IINRequestPaymentIntentResponse for INRequestPaymentIntentResponse {}
pub trait IINRequestPaymentIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INRequestPaymentIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INRequestPaymentIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
    unsafe fn paymentRecord(&self) -> INPaymentRecord
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, paymentRecord)
    }
    unsafe fn setPaymentRecord_(&self, paymentRecord: INPaymentRecord)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPaymentRecord : paymentRecord)
    }
}
pub type INSearchForAccountsIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSearchForAccountsIntentResponse(pub id);
impl std::ops::Deref for INSearchForAccountsIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSearchForAccountsIntentResponse {}
impl INSearchForAccountsIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSearchForAccountsIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INSearchForAccountsIntentResponse {}
impl PNSCopying for INSearchForAccountsIntentResponse {}
impl PNSSecureCoding for INSearchForAccountsIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INSearchForAccountsIntentResponse {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResponse,
    ) -> Result<INSearchForAccountsIntentResponse, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSearchForAccountsIntentResponse").unwrap())
        };
        if is_kind_of {
            Ok(INSearchForAccountsIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INSearchForAccountsIntentResponse")
        }
    }
}
impl INSObject for INSearchForAccountsIntentResponse {}
impl PNSObject for INSearchForAccountsIntentResponse {}
impl IINSearchForAccountsIntentResponse for INSearchForAccountsIntentResponse {}
pub trait IINSearchForAccountsIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INSearchForAccountsIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INSearchForAccountsIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
    unsafe fn accounts(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accounts)
    }
    unsafe fn setAccounts_(&self, accounts: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccounts : accounts)
    }
}
pub type INSearchForBillsIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSearchForBillsIntentResponse(pub id);
impl std::ops::Deref for INSearchForBillsIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSearchForBillsIntentResponse {}
impl INSearchForBillsIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSearchForBillsIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INSearchForBillsIntentResponse {}
impl PNSCopying for INSearchForBillsIntentResponse {}
impl PNSSecureCoding for INSearchForBillsIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INSearchForBillsIntentResponse {
    type Error = &'static str;
    fn try_from(parent: INIntentResponse) -> Result<INSearchForBillsIntentResponse, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSearchForBillsIntentResponse").unwrap())
        };
        if is_kind_of {
            Ok(INSearchForBillsIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INSearchForBillsIntentResponse")
        }
    }
}
impl INSObject for INSearchForBillsIntentResponse {}
impl PNSObject for INSearchForBillsIntentResponse {}
impl IINSearchForBillsIntentResponse for INSearchForBillsIntentResponse {}
pub trait IINSearchForBillsIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INSearchForBillsIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INSearchForBillsIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
    unsafe fn bills(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, bills)
    }
    unsafe fn setBills_(&self, bills: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBills : bills)
    }
}
pub type INSendPaymentIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSendPaymentIntentResponse(pub id);
impl std::ops::Deref for INSendPaymentIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSendPaymentIntentResponse {}
impl INSendPaymentIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSendPaymentIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INSendPaymentIntentResponse {}
impl PNSCopying for INSendPaymentIntentResponse {}
impl PNSSecureCoding for INSendPaymentIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INSendPaymentIntentResponse {
    type Error = &'static str;
    fn try_from(parent: INIntentResponse) -> Result<INSendPaymentIntentResponse, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSendPaymentIntentResponse").unwrap()) };
        if is_kind_of {
            Ok(INSendPaymentIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INSendPaymentIntentResponse")
        }
    }
}
impl INSObject for INSendPaymentIntentResponse {}
impl PNSObject for INSendPaymentIntentResponse {}
impl IINSendPaymentIntentResponse for INSendPaymentIntentResponse {}
pub trait IINSendPaymentIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INSendPaymentIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INSendPaymentIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
    unsafe fn paymentRecord(&self) -> INPaymentRecord
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, paymentRecord)
    }
    unsafe fn setPaymentRecord_(&self, paymentRecord: INPaymentRecord)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPaymentRecord : paymentRecord)
    }
}
pub type INTransferMoneyIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INTransferMoneyIntentResponse(pub id);
impl std::ops::Deref for INTransferMoneyIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INTransferMoneyIntentResponse {}
impl INTransferMoneyIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INTransferMoneyIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INTransferMoneyIntentResponse {}
impl PNSCopying for INTransferMoneyIntentResponse {}
impl PNSSecureCoding for INTransferMoneyIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INTransferMoneyIntentResponse {
    type Error = &'static str;
    fn try_from(parent: INIntentResponse) -> Result<INTransferMoneyIntentResponse, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INTransferMoneyIntentResponse").unwrap())
        };
        if is_kind_of {
            Ok(INTransferMoneyIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INTransferMoneyIntentResponse")
        }
    }
}
impl INSObject for INTransferMoneyIntentResponse {}
impl PNSObject for INTransferMoneyIntentResponse {}
impl IINTransferMoneyIntentResponse for INTransferMoneyIntentResponse {}
pub trait IINTransferMoneyIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INTransferMoneyIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INTransferMoneyIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
    unsafe fn fromAccount(&self) -> INPaymentAccount
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, fromAccount)
    }
    unsafe fn setFromAccount_(&self, fromAccount: INPaymentAccount)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFromAccount : fromAccount)
    }
    unsafe fn toAccount(&self) -> INPaymentAccount
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, toAccount)
    }
    unsafe fn setToAccount_(&self, toAccount: INPaymentAccount)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setToAccount : toAccount)
    }
    unsafe fn transactionAmount(&self) -> INPaymentAmount
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, transactionAmount)
    }
    unsafe fn setTransactionAmount_(&self, transactionAmount: INPaymentAmount)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTransactionAmount : transactionAmount)
    }
    unsafe fn transactionScheduledDate(&self) -> INDateComponentsRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, transactionScheduledDate)
    }
    unsafe fn setTransactionScheduledDate_(&self, transactionScheduledDate: INDateComponentsRange)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTransactionScheduledDate : transactionScheduledDate)
    }
    unsafe fn transactionNote(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, transactionNote)
    }
    unsafe fn setTransactionNote_(&self, transactionNote: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTransactionNote : transactionNote)
    }
    unsafe fn transferFee(&self) -> INCurrencyAmount
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, transferFee)
    }
    unsafe fn setTransferFee_(&self, transferFee: INCurrencyAmount)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTransferFee : transferFee)
    }
}
pub type INSearchForPhotosIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSearchForPhotosIntentResponse(pub id);
impl std::ops::Deref for INSearchForPhotosIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSearchForPhotosIntentResponse {}
impl INSearchForPhotosIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSearchForPhotosIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INSearchForPhotosIntentResponse {}
impl PNSCopying for INSearchForPhotosIntentResponse {}
impl PNSSecureCoding for INSearchForPhotosIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INSearchForPhotosIntentResponse {
    type Error = &'static str;
    fn try_from(parent: INIntentResponse) -> Result<INSearchForPhotosIntentResponse, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSearchForPhotosIntentResponse").unwrap())
        };
        if is_kind_of {
            Ok(INSearchForPhotosIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INSearchForPhotosIntentResponse")
        }
    }
}
impl INSObject for INSearchForPhotosIntentResponse {}
impl PNSObject for INSearchForPhotosIntentResponse {}
impl IINSearchForPhotosIntentResponse for INSearchForPhotosIntentResponse {}
pub trait IINSearchForPhotosIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INSearchForPhotosIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INSearchForPhotosIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
    unsafe fn searchResultsCount(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, searchResultsCount)
    }
    unsafe fn setSearchResultsCount_(&self, searchResultsCount: NSNumber)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSearchResultsCount : searchResultsCount)
    }
}
pub type INStartPhotoPlaybackIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INStartPhotoPlaybackIntentResponse(pub id);
impl std::ops::Deref for INStartPhotoPlaybackIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INStartPhotoPlaybackIntentResponse {}
impl INStartPhotoPlaybackIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INStartPhotoPlaybackIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INStartPhotoPlaybackIntentResponse {}
impl PNSCopying for INStartPhotoPlaybackIntentResponse {}
impl PNSSecureCoding for INStartPhotoPlaybackIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INStartPhotoPlaybackIntentResponse {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResponse,
    ) -> Result<INStartPhotoPlaybackIntentResponse, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INStartPhotoPlaybackIntentResponse").unwrap())
        };
        if is_kind_of {
            Ok(INStartPhotoPlaybackIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INStartPhotoPlaybackIntentResponse")
        }
    }
}
impl INSObject for INStartPhotoPlaybackIntentResponse {}
impl PNSObject for INStartPhotoPlaybackIntentResponse {}
impl IINStartPhotoPlaybackIntentResponse for INStartPhotoPlaybackIntentResponse {}
pub trait IINStartPhotoPlaybackIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INStartPhotoPlaybackIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INStartPhotoPlaybackIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
    unsafe fn searchResultsCount(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, searchResultsCount)
    }
    unsafe fn setSearchResultsCount_(&self, searchResultsCount: NSNumber)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSearchResultsCount : searchResultsCount)
    }
}
pub type INGetReservationDetailsIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INGetReservationDetailsIntentResponse(pub id);
impl std::ops::Deref for INGetReservationDetailsIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INGetReservationDetailsIntentResponse {}
impl INGetReservationDetailsIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INGetReservationDetailsIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INGetReservationDetailsIntentResponse {}
impl PNSCopying for INGetReservationDetailsIntentResponse {}
impl PNSSecureCoding for INGetReservationDetailsIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INGetReservationDetailsIntentResponse {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResponse,
    ) -> Result<INGetReservationDetailsIntentResponse, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INGetReservationDetailsIntentResponse").unwrap())
        };
        if is_kind_of {
            Ok(INGetReservationDetailsIntentResponse(parent.0))
        } else {
            Err ("This INIntentResponse cannot be downcasted to INGetReservationDetailsIntentResponse" ,)
        }
    }
}
impl INSObject for INGetReservationDetailsIntentResponse {}
impl PNSObject for INGetReservationDetailsIntentResponse {}
impl IINGetReservationDetailsIntentResponse for INGetReservationDetailsIntentResponse {}
pub trait IINGetReservationDetailsIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INGetReservationDetailsIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INGetReservationDetailsIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
    unsafe fn reservations(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, reservations)
    }
    unsafe fn setReservations_(&self, reservations: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setReservations : reservations)
    }
}
pub type INGetRideStatusIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INGetRideStatusIntentResponse(pub id);
impl std::ops::Deref for INGetRideStatusIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INGetRideStatusIntentResponse {}
impl INGetRideStatusIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INGetRideStatusIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INGetRideStatusIntentResponse {}
impl PNSCopying for INGetRideStatusIntentResponse {}
impl PNSSecureCoding for INGetRideStatusIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INGetRideStatusIntentResponse {
    type Error = &'static str;
    fn try_from(parent: INIntentResponse) -> Result<INGetRideStatusIntentResponse, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INGetRideStatusIntentResponse").unwrap())
        };
        if is_kind_of {
            Ok(INGetRideStatusIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INGetRideStatusIntentResponse")
        }
    }
}
impl INSObject for INGetRideStatusIntentResponse {}
impl PNSObject for INGetRideStatusIntentResponse {}
impl IINGetRideStatusIntentResponse for INGetRideStatusIntentResponse {}
pub trait IINGetRideStatusIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INGetRideStatusIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INGetRideStatusIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
    unsafe fn rideStatus(&self) -> INRideStatus
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, rideStatus)
    }
    unsafe fn setRideStatus_(&self, rideStatus: INRideStatus)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRideStatus : rideStatus)
    }
}
pub type INListRideOptionsIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INListRideOptionsIntentResponse(pub id);
impl std::ops::Deref for INListRideOptionsIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INListRideOptionsIntentResponse {}
impl INListRideOptionsIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INListRideOptionsIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INListRideOptionsIntentResponse {}
impl PNSCopying for INListRideOptionsIntentResponse {}
impl PNSSecureCoding for INListRideOptionsIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INListRideOptionsIntentResponse {
    type Error = &'static str;
    fn try_from(parent: INIntentResponse) -> Result<INListRideOptionsIntentResponse, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INListRideOptionsIntentResponse").unwrap())
        };
        if is_kind_of {
            Ok(INListRideOptionsIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INListRideOptionsIntentResponse")
        }
    }
}
impl INSObject for INListRideOptionsIntentResponse {}
impl PNSObject for INListRideOptionsIntentResponse {}
impl IINListRideOptionsIntentResponse for INListRideOptionsIntentResponse {}
pub trait IINListRideOptionsIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INListRideOptionsIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INListRideOptionsIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
    unsafe fn rideOptions(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, rideOptions)
    }
    unsafe fn setRideOptions_(&self, rideOptions: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRideOptions : rideOptions)
    }
    unsafe fn paymentMethods(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, paymentMethods)
    }
    unsafe fn setPaymentMethods_(&self, paymentMethods: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPaymentMethods : paymentMethods)
    }
    unsafe fn expirationDate(&self) -> NSDate
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, expirationDate)
    }
    unsafe fn setExpirationDate_(&self, expirationDate: NSDate)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setExpirationDate : expirationDate)
    }
}
pub type INRequestRideIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INRequestRideIntentResponse(pub id);
impl std::ops::Deref for INRequestRideIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INRequestRideIntentResponse {}
impl INRequestRideIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INRequestRideIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INRequestRideIntentResponse {}
impl PNSCopying for INRequestRideIntentResponse {}
impl PNSSecureCoding for INRequestRideIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INRequestRideIntentResponse {
    type Error = &'static str;
    fn try_from(parent: INIntentResponse) -> Result<INRequestRideIntentResponse, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INRequestRideIntentResponse").unwrap()) };
        if is_kind_of {
            Ok(INRequestRideIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INRequestRideIntentResponse")
        }
    }
}
impl INSObject for INRequestRideIntentResponse {}
impl PNSObject for INRequestRideIntentResponse {}
impl IINRequestRideIntentResponse for INRequestRideIntentResponse {}
pub trait IINRequestRideIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INRequestRideIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INRequestRideIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
    unsafe fn rideStatus(&self) -> INRideStatus
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, rideStatus)
    }
    unsafe fn setRideStatus_(&self, rideStatus: INRideStatus)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRideStatus : rideStatus)
    }
}
pub type INCancelRideIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INCancelRideIntentResponse(pub id);
impl std::ops::Deref for INCancelRideIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INCancelRideIntentResponse {}
impl INCancelRideIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INCancelRideIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INCancelRideIntentResponse {}
impl PNSCopying for INCancelRideIntentResponse {}
impl PNSSecureCoding for INCancelRideIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INCancelRideIntentResponse {
    type Error = &'static str;
    fn try_from(parent: INIntentResponse) -> Result<INCancelRideIntentResponse, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INCancelRideIntentResponse").unwrap()) };
        if is_kind_of {
            Ok(INCancelRideIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INCancelRideIntentResponse")
        }
    }
}
impl INSObject for INCancelRideIntentResponse {}
impl PNSObject for INCancelRideIntentResponse {}
impl IINCancelRideIntentResponse for INCancelRideIntentResponse {}
pub trait IINCancelRideIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INCancelRideIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INCancelRideIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
    unsafe fn cancellationFee(&self) -> INCurrencyAmount
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, cancellationFee)
    }
    unsafe fn setCancellationFee_(&self, cancellationFee: INCurrencyAmount)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCancellationFee : cancellationFee)
    }
    unsafe fn cancellationFeeThreshold(&self) -> NSDateComponents
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, cancellationFeeThreshold)
    }
    unsafe fn setCancellationFeeThreshold_(&self, cancellationFeeThreshold: NSDateComponents)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCancellationFeeThreshold : cancellationFeeThreshold)
    }
}
pub type INSendRideFeedbackIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSendRideFeedbackIntentResponse(pub id);
impl std::ops::Deref for INSendRideFeedbackIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSendRideFeedbackIntentResponse {}
impl INSendRideFeedbackIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSendRideFeedbackIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INSendRideFeedbackIntentResponse {}
impl PNSCopying for INSendRideFeedbackIntentResponse {}
impl PNSSecureCoding for INSendRideFeedbackIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INSendRideFeedbackIntentResponse {
    type Error = &'static str;
    fn try_from(parent: INIntentResponse) -> Result<INSendRideFeedbackIntentResponse, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSendRideFeedbackIntentResponse").unwrap())
        };
        if is_kind_of {
            Ok(INSendRideFeedbackIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INSendRideFeedbackIntentResponse")
        }
    }
}
impl INSObject for INSendRideFeedbackIntentResponse {}
impl PNSObject for INSendRideFeedbackIntentResponse {}
impl IINSendRideFeedbackIntentResponse for INSendRideFeedbackIntentResponse {}
pub trait IINSendRideFeedbackIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INSendRideFeedbackIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INSendRideFeedbackIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
}
pub type INGetVisualCodeIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INGetVisualCodeIntentResponse(pub id);
impl std::ops::Deref for INGetVisualCodeIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INGetVisualCodeIntentResponse {}
impl INGetVisualCodeIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INGetVisualCodeIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INGetVisualCodeIntentResponse {}
impl PNSCopying for INGetVisualCodeIntentResponse {}
impl PNSSecureCoding for INGetVisualCodeIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INGetVisualCodeIntentResponse {
    type Error = &'static str;
    fn try_from(parent: INIntentResponse) -> Result<INGetVisualCodeIntentResponse, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INGetVisualCodeIntentResponse").unwrap())
        };
        if is_kind_of {
            Ok(INGetVisualCodeIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INGetVisualCodeIntentResponse")
        }
    }
}
impl INSObject for INGetVisualCodeIntentResponse {}
impl PNSObject for INGetVisualCodeIntentResponse {}
impl IINGetVisualCodeIntentResponse for INGetVisualCodeIntentResponse {}
pub trait IINGetVisualCodeIntentResponse: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INGetVisualCodeIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INGetVisualCodeIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
    unsafe fn visualCodeImage(&self) -> INImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, visualCodeImage)
    }
    unsafe fn setVisualCodeImage_(&self, visualCodeImage: INImage)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setVisualCodeImage : visualCodeImage)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INAccountTypeResolutionResult(pub id);
impl std::ops::Deref for INAccountTypeResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INAccountTypeResolutionResult {}
impl INAccountTypeResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INAccountTypeResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INAccountTypeResolutionResult {}
impl From<INAccountTypeResolutionResult> for INIntentResolutionResult {
    fn from(child: INAccountTypeResolutionResult) -> INIntentResolutionResult {
        INIntentResolutionResult(child.0)
    }
}
impl std::convert::TryFrom<INIntentResolutionResult> for INAccountTypeResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INAccountTypeResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INAccountTypeResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INAccountTypeResolutionResult(parent.0))
        } else {
            Err ("This INIntentResolutionResult cannot be downcasted to INAccountTypeResolutionResult" ,)
        }
    }
}
impl INSObject for INAccountTypeResolutionResult {}
impl PNSObject for INAccountTypeResolutionResult {}
impl IINAccountTypeResolutionResult for INAccountTypeResolutionResult {}
pub trait IINAccountTypeResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedAccountType_(resolvedAccountType: INAccountType) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INAccountTypeResolutionResult").unwrap(), successWithResolvedAccountType : resolvedAccountType)
    }
    unsafe fn successWithResolvedValue_(resolvedValue: INAccountType) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INAccountTypeResolutionResult").unwrap(), successWithResolvedValue : resolvedValue)
    }
    unsafe fn confirmationRequiredWithAccountTypeToConfirm_(
        accountTypeToConfirm: INAccountType,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INAccountTypeResolutionResult").unwrap(), confirmationRequiredWithAccountTypeToConfirm : accountTypeToConfirm)
    }
    unsafe fn confirmationRequiredWithValueToConfirm_(valueToConfirm: INAccountType) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INAccountTypeResolutionResult").unwrap(), confirmationRequiredWithValueToConfirm : valueToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INMediaDestinationResolutionResult(pub id);
impl std::ops::Deref for INMediaDestinationResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INMediaDestinationResolutionResult {}
impl INMediaDestinationResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INMediaDestinationResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INMediaDestinationResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INMediaDestinationResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INMediaDestinationResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INMediaDestinationResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INMediaDestinationResolutionResult(parent.0))
        } else {
            Err ("This INIntentResolutionResult cannot be downcasted to INMediaDestinationResolutionResult" ,)
        }
    }
}
impl INSObject for INMediaDestinationResolutionResult {}
impl PNSObject for INMediaDestinationResolutionResult {}
impl IINMediaDestinationResolutionResult for INMediaDestinationResolutionResult {}
pub trait IINMediaDestinationResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedMediaDestination_(
        resolvedMediaDestination: INMediaDestination,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INMediaDestinationResolutionResult").unwrap(), successWithResolvedMediaDestination : resolvedMediaDestination)
    }
    unsafe fn disambiguationWithMediaDestinationsToDisambiguate_(
        mediaDestinationsToDisambiguate: NSArray,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INMediaDestinationResolutionResult").unwrap(), disambiguationWithMediaDestinationsToDisambiguate : mediaDestinationsToDisambiguate)
    }
    unsafe fn confirmationRequiredWithMediaDestinationToConfirm_(
        mediaDestinationToConfirm: INMediaDestination,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INMediaDestinationResolutionResult").unwrap(), confirmationRequiredWithMediaDestinationToConfirm : mediaDestinationToConfirm)
    }
}
pub type INAddMediaMediaDestinationUnsupportedReason = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INAddMediaMediaDestinationResolutionResult(pub id);
impl std::ops::Deref for INAddMediaMediaDestinationResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INAddMediaMediaDestinationResolutionResult {}
impl INAddMediaMediaDestinationResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INAddMediaMediaDestinationResolutionResult").unwrap(), alloc) })
    }
}
impl IINMediaDestinationResolutionResult for INAddMediaMediaDestinationResolutionResult {}
impl From<INAddMediaMediaDestinationResolutionResult> for INMediaDestinationResolutionResult {
    fn from(
        child: INAddMediaMediaDestinationResolutionResult,
    ) -> INMediaDestinationResolutionResult {
        INMediaDestinationResolutionResult(child.0)
    }
}
impl std::convert::TryFrom<INMediaDestinationResolutionResult>
    for INAddMediaMediaDestinationResolutionResult
{
    type Error = &'static str;
    fn try_from(
        parent: INMediaDestinationResolutionResult,
    ) -> Result<INAddMediaMediaDestinationResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INAddMediaMediaDestinationResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INAddMediaMediaDestinationResolutionResult(parent.0))
        } else {
            Err ("This INMediaDestinationResolutionResult cannot be downcasted to INAddMediaMediaDestinationResolutionResult" ,)
        }
    }
}
impl IINIntentResolutionResult for INAddMediaMediaDestinationResolutionResult {}
impl INSObject for INAddMediaMediaDestinationResolutionResult {}
impl PNSObject for INAddMediaMediaDestinationResolutionResult {}
impl IINAddMediaMediaDestinationResolutionResult for INAddMediaMediaDestinationResolutionResult {}
pub trait IINAddMediaMediaDestinationResolutionResult: Sized + std::ops::Deref {
    unsafe fn initWithMediaDestinationResolutionResult_(
        &self,
        mediaDestinationResolutionResult: INMediaDestinationResolutionResult,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithMediaDestinationResolutionResult : mediaDestinationResolutionResult)
    }
    unsafe fn unsupportedForReason_(
        reason: INAddMediaMediaDestinationUnsupportedReason,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INAddMediaMediaDestinationResolutionResult").unwrap(), unsupportedForReason : reason)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INMediaItemResolutionResult(pub id);
impl std::ops::Deref for INMediaItemResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INMediaItemResolutionResult {}
impl INMediaItemResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INMediaItemResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INMediaItemResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INMediaItemResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INMediaItemResolutionResult, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INMediaItemResolutionResult").unwrap()) };
        if is_kind_of {
            Ok(INMediaItemResolutionResult(parent.0))
        } else {
            Err("This INIntentResolutionResult cannot be downcasted to INMediaItemResolutionResult")
        }
    }
}
impl INSObject for INMediaItemResolutionResult {}
impl PNSObject for INMediaItemResolutionResult {}
impl IINMediaItemResolutionResult for INMediaItemResolutionResult {}
pub trait IINMediaItemResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedMediaItem_(resolvedMediaItem: INMediaItem) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INMediaItemResolutionResult").unwrap(), successWithResolvedMediaItem : resolvedMediaItem)
    }
    unsafe fn successesWithResolvedMediaItems_(resolvedMediaItems: NSArray) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INMediaItemResolutionResult").unwrap(), successesWithResolvedMediaItems : resolvedMediaItems)
    }
    unsafe fn disambiguationWithMediaItemsToDisambiguate_(
        mediaItemsToDisambiguate: NSArray,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INMediaItemResolutionResult").unwrap(), disambiguationWithMediaItemsToDisambiguate : mediaItemsToDisambiguate)
    }
    unsafe fn confirmationRequiredWithMediaItemToConfirm_(
        mediaItemToConfirm: INMediaItem,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INMediaItemResolutionResult").unwrap(), confirmationRequiredWithMediaItemToConfirm : mediaItemToConfirm)
    }
}
pub type INAddMediaMediaItemUnsupportedReason = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INAddMediaMediaItemResolutionResult(pub id);
impl std::ops::Deref for INAddMediaMediaItemResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INAddMediaMediaItemResolutionResult {}
impl INAddMediaMediaItemResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INAddMediaMediaItemResolutionResult").unwrap(), alloc) })
    }
}
impl IINMediaItemResolutionResult for INAddMediaMediaItemResolutionResult {}
impl From<INAddMediaMediaItemResolutionResult> for INMediaItemResolutionResult {
    fn from(child: INAddMediaMediaItemResolutionResult) -> INMediaItemResolutionResult {
        INMediaItemResolutionResult(child.0)
    }
}
impl std::convert::TryFrom<INMediaItemResolutionResult> for INAddMediaMediaItemResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INMediaItemResolutionResult,
    ) -> Result<INAddMediaMediaItemResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INAddMediaMediaItemResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INAddMediaMediaItemResolutionResult(parent.0))
        } else {
            Err ("This INMediaItemResolutionResult cannot be downcasted to INAddMediaMediaItemResolutionResult" ,)
        }
    }
}
impl IINIntentResolutionResult for INAddMediaMediaItemResolutionResult {}
impl INSObject for INAddMediaMediaItemResolutionResult {}
impl PNSObject for INAddMediaMediaItemResolutionResult {}
impl IINAddMediaMediaItemResolutionResult for INAddMediaMediaItemResolutionResult {}
pub trait IINAddMediaMediaItemResolutionResult: Sized + std::ops::Deref {
    unsafe fn initWithMediaItemResolutionResult_(
        &self,
        mediaItemResolutionResult: INMediaItemResolutionResult,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithMediaItemResolutionResult : mediaItemResolutionResult)
    }
    unsafe fn successesWithResolvedMediaItems_(resolvedMediaItems: NSArray) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INAddMediaMediaItemResolutionResult").unwrap(), successesWithResolvedMediaItems : resolvedMediaItems)
    }
    unsafe fn unsupportedForReason_(reason: INAddMediaMediaItemUnsupportedReason) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INAddMediaMediaItemResolutionResult").unwrap(), unsupportedForReason : reason)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INTaskListResolutionResult(pub id);
impl std::ops::Deref for INTaskListResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INTaskListResolutionResult {}
impl INTaskListResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INTaskListResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INTaskListResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INTaskListResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INTaskListResolutionResult, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INTaskListResolutionResult").unwrap()) };
        if is_kind_of {
            Ok(INTaskListResolutionResult(parent.0))
        } else {
            Err("This INIntentResolutionResult cannot be downcasted to INTaskListResolutionResult")
        }
    }
}
impl INSObject for INTaskListResolutionResult {}
impl PNSObject for INTaskListResolutionResult {}
impl IINTaskListResolutionResult for INTaskListResolutionResult {}
pub trait IINTaskListResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedTaskList_(resolvedTaskList: INTaskList) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INTaskListResolutionResult").unwrap(), successWithResolvedTaskList : resolvedTaskList)
    }
    unsafe fn disambiguationWithTaskListsToDisambiguate_(
        taskListsToDisambiguate: NSArray,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INTaskListResolutionResult").unwrap(), disambiguationWithTaskListsToDisambiguate : taskListsToDisambiguate)
    }
    unsafe fn confirmationRequiredWithTaskListToConfirm_(
        taskListToConfirm: INTaskList,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INTaskListResolutionResult").unwrap(), confirmationRequiredWithTaskListToConfirm : taskListToConfirm)
    }
}
pub type INAddTasksTargetTaskListConfirmationReason = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INAddTasksTargetTaskListResolutionResult(pub id);
impl std::ops::Deref for INAddTasksTargetTaskListResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INAddTasksTargetTaskListResolutionResult {}
impl INAddTasksTargetTaskListResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INAddTasksTargetTaskListResolutionResult").unwrap(), alloc) })
    }
}
impl IINTaskListResolutionResult for INAddTasksTargetTaskListResolutionResult {}
impl From<INAddTasksTargetTaskListResolutionResult> for INTaskListResolutionResult {
    fn from(child: INAddTasksTargetTaskListResolutionResult) -> INTaskListResolutionResult {
        INTaskListResolutionResult(child.0)
    }
}
impl std::convert::TryFrom<INTaskListResolutionResult>
    for INAddTasksTargetTaskListResolutionResult
{
    type Error = &'static str;
    fn try_from(
        parent: INTaskListResolutionResult,
    ) -> Result<INAddTasksTargetTaskListResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INAddTasksTargetTaskListResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INAddTasksTargetTaskListResolutionResult(parent.0))
        } else {
            Err ("This INTaskListResolutionResult cannot be downcasted to INAddTasksTargetTaskListResolutionResult" ,)
        }
    }
}
impl IINIntentResolutionResult for INAddTasksTargetTaskListResolutionResult {}
impl INSObject for INAddTasksTargetTaskListResolutionResult {}
impl PNSObject for INAddTasksTargetTaskListResolutionResult {}
impl IINAddTasksTargetTaskListResolutionResult for INAddTasksTargetTaskListResolutionResult {}
pub trait IINAddTasksTargetTaskListResolutionResult: Sized + std::ops::Deref {
    unsafe fn initWithTaskListResolutionResult_(
        &self,
        taskListResolutionResult: INTaskListResolutionResult,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithTaskListResolutionResult : taskListResolutionResult)
    }
    unsafe fn confirmationRequiredWithTaskListToConfirm_forReason_(
        taskListToConfirm: INTaskList,
        reason: INAddTasksTargetTaskListConfirmationReason,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INAddTasksTargetTaskListResolutionResult").unwrap(), confirmationRequiredWithTaskListToConfirm : taskListToConfirm, forReason : reason)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INTemporalEventTriggerResolutionResult(pub id);
impl std::ops::Deref for INTemporalEventTriggerResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INTemporalEventTriggerResolutionResult {}
impl INTemporalEventTriggerResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INTemporalEventTriggerResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INTemporalEventTriggerResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INTemporalEventTriggerResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INTemporalEventTriggerResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INTemporalEventTriggerResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INTemporalEventTriggerResolutionResult(parent.0))
        } else {
            Err ("This INIntentResolutionResult cannot be downcasted to INTemporalEventTriggerResolutionResult" ,)
        }
    }
}
impl INSObject for INTemporalEventTriggerResolutionResult {}
impl PNSObject for INTemporalEventTriggerResolutionResult {}
impl IINTemporalEventTriggerResolutionResult for INTemporalEventTriggerResolutionResult {}
pub trait IINTemporalEventTriggerResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedTemporalEventTrigger_(
        resolvedTemporalEventTrigger: INTemporalEventTrigger,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INTemporalEventTriggerResolutionResult").unwrap(), successWithResolvedTemporalEventTrigger : resolvedTemporalEventTrigger)
    }
    unsafe fn disambiguationWithTemporalEventTriggersToDisambiguate_(
        temporalEventTriggersToDisambiguate: NSArray,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INTemporalEventTriggerResolutionResult").unwrap(), disambiguationWithTemporalEventTriggersToDisambiguate : temporalEventTriggersToDisambiguate)
    }
    unsafe fn confirmationRequiredWithTemporalEventTriggerToConfirm_(
        temporalEventTriggerToConfirm: INTemporalEventTrigger,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INTemporalEventTriggerResolutionResult").unwrap(), confirmationRequiredWithTemporalEventTriggerToConfirm : temporalEventTriggerToConfirm)
    }
}
pub type INAddTasksTemporalEventTriggerUnsupportedReason = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INAddTasksTemporalEventTriggerResolutionResult(pub id);
impl std::ops::Deref for INAddTasksTemporalEventTriggerResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INAddTasksTemporalEventTriggerResolutionResult {}
impl INAddTasksTemporalEventTriggerResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe {
            msg_send!(&*objc2::runtime::AnyClass::get(c"INAddTasksTemporalEventTriggerResolutionResult").unwrap(), alloc)
        })
    }
}
impl IINTemporalEventTriggerResolutionResult for INAddTasksTemporalEventTriggerResolutionResult {}
impl From<INAddTasksTemporalEventTriggerResolutionResult>
    for INTemporalEventTriggerResolutionResult
{
    fn from(
        child: INAddTasksTemporalEventTriggerResolutionResult,
    ) -> INTemporalEventTriggerResolutionResult {
        INTemporalEventTriggerResolutionResult(child.0)
    }
}
impl std::convert::TryFrom<INTemporalEventTriggerResolutionResult>
    for INAddTasksTemporalEventTriggerResolutionResult
{
    type Error = &'static str;
    fn try_from(
        parent: INTemporalEventTriggerResolutionResult,
    ) -> Result<INAddTasksTemporalEventTriggerResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INAddTasksTemporalEventTriggerResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INAddTasksTemporalEventTriggerResolutionResult(parent.0))
        } else {
            Err ("This INTemporalEventTriggerResolutionResult cannot be downcasted to INAddTasksTemporalEventTriggerResolutionResult" ,)
        }
    }
}
impl IINIntentResolutionResult for INAddTasksTemporalEventTriggerResolutionResult {}
impl INSObject for INAddTasksTemporalEventTriggerResolutionResult {}
impl PNSObject for INAddTasksTemporalEventTriggerResolutionResult {}
impl IINAddTasksTemporalEventTriggerResolutionResult
    for INAddTasksTemporalEventTriggerResolutionResult
{
}
pub trait IINAddTasksTemporalEventTriggerResolutionResult: Sized + std::ops::Deref {
    unsafe fn initWithTemporalEventTriggerResolutionResult_(
        &self,
        temporalEventTriggerResolutionResult: INTemporalEventTriggerResolutionResult,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithTemporalEventTriggerResolutionResult : temporalEventTriggerResolutionResult)
    }
    unsafe fn unsupportedForReason_(
        reason: INAddTasksTemporalEventTriggerUnsupportedReason,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INAddTasksTemporalEventTriggerResolutionResult").unwrap(), unsupportedForReason : reason)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INAirline(pub id);
impl std::ops::Deref for INAirline {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INAirline {}
impl INAirline {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INAirline").unwrap(), alloc) })
    }
}
impl PNSCopying for INAirline {}
impl PNSSecureCoding for INAirline {}
impl INSObject for INAirline {}
impl PNSObject for INAirline {}
impl std::convert::TryFrom<NSObject> for INAirline {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INAirline, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INAirline").unwrap()) };
        if is_kind_of {
            Ok(INAirline(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INAirline")
        }
    }
}
impl IINAirline for INAirline {}
pub trait IINAirline: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithName_iataCode_icaoCode_(
        &self,
        name: NSString,
        iataCode: NSString,
        icaoCode: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithName : name, iataCode : iataCode, icaoCode : icaoCode)
    }
    unsafe fn name(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, name)
    }
    unsafe fn iataCode(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, iataCode)
    }
    unsafe fn icaoCode(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, icaoCode)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INAirport(pub id);
impl std::ops::Deref for INAirport {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INAirport {}
impl INAirport {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INAirport").unwrap(), alloc) })
    }
}
impl PNSCopying for INAirport {}
impl PNSSecureCoding for INAirport {}
impl INSObject for INAirport {}
impl PNSObject for INAirport {}
impl std::convert::TryFrom<NSObject> for INAirport {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INAirport, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INAirport").unwrap()) };
        if is_kind_of {
            Ok(INAirport(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INAirport")
        }
    }
}
impl IINAirport for INAirport {}
pub trait IINAirport: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithName_iataCode_icaoCode_(
        &self,
        name: NSString,
        iataCode: NSString,
        icaoCode: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithName : name, iataCode : iataCode, icaoCode : icaoCode)
    }
    unsafe fn name(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, name)
    }
    unsafe fn iataCode(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, iataCode)
    }
    unsafe fn icaoCode(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, icaoCode)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INAirportGate(pub id);
impl std::ops::Deref for INAirportGate {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INAirportGate {}
impl INAirportGate {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INAirportGate").unwrap(), alloc) })
    }
}
impl PNSCopying for INAirportGate {}
impl PNSSecureCoding for INAirportGate {}
impl INSObject for INAirportGate {}
impl PNSObject for INAirportGate {}
impl std::convert::TryFrom<NSObject> for INAirportGate {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INAirportGate, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INAirportGate").unwrap()) };
        if is_kind_of {
            Ok(INAirportGate(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INAirportGate")
        }
    }
}
impl IINAirportGate for INAirportGate {}
pub trait IINAirportGate: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithAirport_terminal_gate_(
        &self,
        airport: INAirport,
        terminal: NSString,
        gate: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithAirport : airport, terminal : terminal, gate : gate)
    }
    unsafe fn airport(&self) -> INAirport
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, airport)
    }
    unsafe fn terminal(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, terminal)
    }
    unsafe fn gate(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, gate)
    }
}
pub type INAmountType = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INBalanceTypeResolutionResult(pub id);
impl std::ops::Deref for INBalanceTypeResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INBalanceTypeResolutionResult {}
impl INBalanceTypeResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INBalanceTypeResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INBalanceTypeResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INBalanceTypeResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INBalanceTypeResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INBalanceTypeResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INBalanceTypeResolutionResult(parent.0))
        } else {
            Err ("This INIntentResolutionResult cannot be downcasted to INBalanceTypeResolutionResult" ,)
        }
    }
}
impl INSObject for INBalanceTypeResolutionResult {}
impl PNSObject for INBalanceTypeResolutionResult {}
impl IINBalanceTypeResolutionResult for INBalanceTypeResolutionResult {}
pub trait IINBalanceTypeResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedBalanceType_(resolvedBalanceType: INBalanceType) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INBalanceTypeResolutionResult").unwrap(), successWithResolvedBalanceType : resolvedBalanceType)
    }
    unsafe fn confirmationRequiredWithBalanceTypeToConfirm_(
        balanceTypeToConfirm: INBalanceType,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INBalanceTypeResolutionResult").unwrap(), confirmationRequiredWithBalanceTypeToConfirm : balanceTypeToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INBillDetails(pub id);
impl std::ops::Deref for INBillDetails {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INBillDetails {}
impl INBillDetails {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INBillDetails").unwrap(), alloc) })
    }
}
impl PNSCopying for INBillDetails {}
impl PNSSecureCoding for INBillDetails {}
impl INSObject for INBillDetails {}
impl PNSObject for INBillDetails {}
impl std::convert::TryFrom<NSObject> for INBillDetails {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INBillDetails, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INBillDetails").unwrap()) };
        if is_kind_of {
            Ok(INBillDetails(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INBillDetails")
        }
    }
}
impl IINBillDetails for INBillDetails {}
pub trait IINBillDetails: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithBillType_paymentStatus_billPayee_amountDue_minimumDue_lateFee_dueDate_paymentDate_(
        &self,
        billType: INBillType,
        paymentStatus: INPaymentStatus,
        billPayee: INBillPayee,
        amountDue: INCurrencyAmount,
        minimumDue: INCurrencyAmount,
        lateFee: INCurrencyAmount,
        dueDate: NSDateComponents,
        paymentDate: NSDateComponents,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithBillType : billType, paymentStatus : paymentStatus, billPayee : billPayee, amountDue : amountDue, minimumDue : minimumDue, lateFee : lateFee, dueDate : dueDate, paymentDate : paymentDate)
    }
    unsafe fn billPayee(&self) -> INBillPayee
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, billPayee)
    }
    unsafe fn setBillPayee_(&self, billPayee: INBillPayee)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBillPayee : billPayee)
    }
    unsafe fn amountDue(&self) -> INCurrencyAmount
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, amountDue)
    }
    unsafe fn setAmountDue_(&self, amountDue: INCurrencyAmount)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAmountDue : amountDue)
    }
    unsafe fn minimumDue(&self) -> INCurrencyAmount
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, minimumDue)
    }
    unsafe fn setMinimumDue_(&self, minimumDue: INCurrencyAmount)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMinimumDue : minimumDue)
    }
    unsafe fn lateFee(&self) -> INCurrencyAmount
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, lateFee)
    }
    unsafe fn setLateFee_(&self, lateFee: INCurrencyAmount)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLateFee : lateFee)
    }
    unsafe fn dueDate(&self) -> NSDateComponents
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, dueDate)
    }
    unsafe fn setDueDate_(&self, dueDate: NSDateComponents)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDueDate : dueDate)
    }
    unsafe fn paymentDate(&self) -> NSDateComponents
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, paymentDate)
    }
    unsafe fn setPaymentDate_(&self, paymentDate: NSDateComponents)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPaymentDate : paymentDate)
    }
    unsafe fn billType(&self) -> INBillType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, billType)
    }
    unsafe fn setBillType_(&self, billType: INBillType)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBillType : billType)
    }
    unsafe fn paymentStatus(&self) -> INPaymentStatus
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, paymentStatus)
    }
    unsafe fn setPaymentStatus_(&self, paymentStatus: INPaymentStatus)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPaymentStatus : paymentStatus)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INBillPayee(pub id);
impl std::ops::Deref for INBillPayee {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INBillPayee {}
impl INBillPayee {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INBillPayee").unwrap(), alloc) })
    }
}
impl PNSCopying for INBillPayee {}
impl PNSSecureCoding for INBillPayee {}
impl INSObject for INBillPayee {}
impl PNSObject for INBillPayee {}
impl std::convert::TryFrom<NSObject> for INBillPayee {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INBillPayee, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INBillPayee").unwrap()) };
        if is_kind_of {
            Ok(INBillPayee(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INBillPayee")
        }
    }
}
impl IINBillPayee for INBillPayee {}
pub trait IINBillPayee: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithNickname_number_organizationName_(
        &self,
        nickname: INSpeakableString,
        number: NSString,
        organizationName: INSpeakableString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithNickname : nickname, number : number, organizationName : organizationName)
    }
    unsafe fn nickname(&self) -> INSpeakableString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, nickname)
    }
    unsafe fn accountNumber(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accountNumber)
    }
    unsafe fn organizationName(&self) -> INSpeakableString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, organizationName)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INBillPayeeResolutionResult(pub id);
impl std::ops::Deref for INBillPayeeResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INBillPayeeResolutionResult {}
impl INBillPayeeResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INBillPayeeResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INBillPayeeResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INBillPayeeResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INBillPayeeResolutionResult, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INBillPayeeResolutionResult").unwrap()) };
        if is_kind_of {
            Ok(INBillPayeeResolutionResult(parent.0))
        } else {
            Err("This INIntentResolutionResult cannot be downcasted to INBillPayeeResolutionResult")
        }
    }
}
impl INSObject for INBillPayeeResolutionResult {}
impl PNSObject for INBillPayeeResolutionResult {}
impl IINBillPayeeResolutionResult for INBillPayeeResolutionResult {}
pub trait IINBillPayeeResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedBillPayee_(resolvedBillPayee: INBillPayee) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INBillPayeeResolutionResult").unwrap(), successWithResolvedBillPayee : resolvedBillPayee)
    }
    unsafe fn disambiguationWithBillPayeesToDisambiguate_(
        billPayeesToDisambiguate: NSArray,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INBillPayeeResolutionResult").unwrap(), disambiguationWithBillPayeesToDisambiguate : billPayeesToDisambiguate)
    }
    unsafe fn confirmationRequiredWithBillPayeeToConfirm_(
        billPayeeToConfirm: INBillPayee,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INBillPayeeResolutionResult").unwrap(), confirmationRequiredWithBillPayeeToConfirm : billPayeeToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INBillTypeResolutionResult(pub id);
impl std::ops::Deref for INBillTypeResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INBillTypeResolutionResult {}
impl INBillTypeResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INBillTypeResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INBillTypeResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INBillTypeResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INBillTypeResolutionResult, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INBillTypeResolutionResult").unwrap()) };
        if is_kind_of {
            Ok(INBillTypeResolutionResult(parent.0))
        } else {
            Err("This INIntentResolutionResult cannot be downcasted to INBillTypeResolutionResult")
        }
    }
}
impl INSObject for INBillTypeResolutionResult {}
impl PNSObject for INBillTypeResolutionResult {}
impl IINBillTypeResolutionResult for INBillTypeResolutionResult {}
pub trait IINBillTypeResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedBillType_(resolvedBillType: INBillType) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INBillTypeResolutionResult").unwrap(), successWithResolvedBillType : resolvedBillType)
    }
    unsafe fn successWithResolvedValue_(resolvedValue: INBillType) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INBillTypeResolutionResult").unwrap(), successWithResolvedValue : resolvedValue)
    }
    unsafe fn confirmationRequiredWithBillTypeToConfirm_(
        billTypeToConfirm: INBillType,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INBillTypeResolutionResult").unwrap(), confirmationRequiredWithBillTypeToConfirm : billTypeToConfirm)
    }
    unsafe fn confirmationRequiredWithValueToConfirm_(valueToConfirm: INBillType) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INBillTypeResolutionResult").unwrap(), confirmationRequiredWithValueToConfirm : valueToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INBoatTrip(pub id);
impl std::ops::Deref for INBoatTrip {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INBoatTrip {}
impl INBoatTrip {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INBoatTrip").unwrap(), alloc) })
    }
}
impl PNSCopying for INBoatTrip {}
impl PNSSecureCoding for INBoatTrip {}
impl INSObject for INBoatTrip {}
impl PNSObject for INBoatTrip {}
impl std::convert::TryFrom<NSObject> for INBoatTrip {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INBoatTrip, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INBoatTrip").unwrap()) };
        if is_kind_of {
            Ok(INBoatTrip(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INBoatTrip")
        }
    }
}
impl IINBoatTrip for INBoatTrip {}
pub trait IINBoatTrip: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithProvider_boatName_boatNumber_tripDuration_departureBoatTerminalLocation_arrivalBoatTerminalLocation_(
        &self,
        provider: NSString,
        boatName: NSString,
        boatNumber: NSString,
        tripDuration: INDateComponentsRange,
        departureBoatTerminalLocation: CLPlacemark,
        arrivalBoatTerminalLocation: CLPlacemark,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithProvider : provider, boatName : boatName, boatNumber : boatNumber, tripDuration : tripDuration, departureBoatTerminalLocation : departureBoatTerminalLocation, arrivalBoatTerminalLocation : arrivalBoatTerminalLocation)
    }
    unsafe fn provider(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, provider)
    }
    unsafe fn boatName(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, boatName)
    }
    unsafe fn boatNumber(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, boatNumber)
    }
    unsafe fn tripDuration(&self) -> INDateComponentsRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tripDuration)
    }
    unsafe fn departureBoatTerminalLocation(&self) -> CLPlacemark
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, departureBoatTerminalLocation)
    }
    unsafe fn arrivalBoatTerminalLocation(&self) -> CLPlacemark
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, arrivalBoatTerminalLocation)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INBusTrip(pub id);
impl std::ops::Deref for INBusTrip {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INBusTrip {}
impl INBusTrip {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INBusTrip").unwrap(), alloc) })
    }
}
impl PNSCopying for INBusTrip {}
impl PNSSecureCoding for INBusTrip {}
impl INSObject for INBusTrip {}
impl PNSObject for INBusTrip {}
impl std::convert::TryFrom<NSObject> for INBusTrip {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INBusTrip, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INBusTrip").unwrap()) };
        if is_kind_of {
            Ok(INBusTrip(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INBusTrip")
        }
    }
}
impl IINBusTrip for INBusTrip {}
pub trait IINBusTrip: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithProvider_busName_busNumber_tripDuration_departureBusStopLocation_departurePlatform_arrivalBusStopLocation_arrivalPlatform_(
        &self,
        provider: NSString,
        busName: NSString,
        busNumber: NSString,
        tripDuration: INDateComponentsRange,
        departureBusStopLocation: CLPlacemark,
        departurePlatform: NSString,
        arrivalBusStopLocation: CLPlacemark,
        arrivalPlatform: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithProvider : provider, busName : busName, busNumber : busNumber, tripDuration : tripDuration, departureBusStopLocation : departureBusStopLocation, departurePlatform : departurePlatform, arrivalBusStopLocation : arrivalBusStopLocation, arrivalPlatform : arrivalPlatform)
    }
    unsafe fn provider(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, provider)
    }
    unsafe fn busName(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, busName)
    }
    unsafe fn busNumber(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, busNumber)
    }
    unsafe fn tripDuration(&self) -> INDateComponentsRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tripDuration)
    }
    unsafe fn departureBusStopLocation(&self) -> CLPlacemark
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, departureBusStopLocation)
    }
    unsafe fn departurePlatform(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, departurePlatform)
    }
    unsafe fn arrivalBusStopLocation(&self) -> CLPlacemark
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, arrivalBusStopLocation)
    }
    unsafe fn arrivalPlatform(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, arrivalPlatform)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INCallCapabilityResolutionResult(pub id);
impl std::ops::Deref for INCallCapabilityResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INCallCapabilityResolutionResult {}
impl INCallCapabilityResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INCallCapabilityResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INCallCapabilityResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INCallCapabilityResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INCallCapabilityResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INCallCapabilityResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INCallCapabilityResolutionResult(parent.0))
        } else {
            Err ("This INIntentResolutionResult cannot be downcasted to INCallCapabilityResolutionResult" ,)
        }
    }
}
impl INSObject for INCallCapabilityResolutionResult {}
impl PNSObject for INCallCapabilityResolutionResult {}
impl IINCallCapabilityResolutionResult for INCallCapabilityResolutionResult {}
pub trait IINCallCapabilityResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedCallCapability_(
        resolvedCallCapability: INCallCapability,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INCallCapabilityResolutionResult").unwrap(), successWithResolvedCallCapability : resolvedCallCapability)
    }
    unsafe fn confirmationRequiredWithCallCapabilityToConfirm_(
        callCapabilityToConfirm: INCallCapability,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INCallCapabilityResolutionResult").unwrap(), confirmationRequiredWithCallCapabilityToConfirm : callCapabilityToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INCallDestinationTypeResolutionResult(pub id);
impl std::ops::Deref for INCallDestinationTypeResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INCallDestinationTypeResolutionResult {}
impl INCallDestinationTypeResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INCallDestinationTypeResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INCallDestinationTypeResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INCallDestinationTypeResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INCallDestinationTypeResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INCallDestinationTypeResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INCallDestinationTypeResolutionResult(parent.0))
        } else {
            Err ("This INIntentResolutionResult cannot be downcasted to INCallDestinationTypeResolutionResult" ,)
        }
    }
}
impl INSObject for INCallDestinationTypeResolutionResult {}
impl PNSObject for INCallDestinationTypeResolutionResult {}
impl IINCallDestinationTypeResolutionResult for INCallDestinationTypeResolutionResult {}
pub trait IINCallDestinationTypeResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedCallDestinationType_(
        resolvedCallDestinationType: INCallDestinationType,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INCallDestinationTypeResolutionResult").unwrap(), successWithResolvedCallDestinationType : resolvedCallDestinationType)
    }
    unsafe fn confirmationRequiredWithCallDestinationTypeToConfirm_(
        callDestinationTypeToConfirm: INCallDestinationType,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INCallDestinationTypeResolutionResult").unwrap(), confirmationRequiredWithCallDestinationTypeToConfirm : callDestinationTypeToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INCallGroup(pub id);
impl std::ops::Deref for INCallGroup {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INCallGroup {}
impl INCallGroup {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INCallGroup").unwrap(), alloc) })
    }
}
impl PNSCopying for INCallGroup {}
impl PNSSecureCoding for INCallGroup {}
impl INSObject for INCallGroup {}
impl PNSObject for INCallGroup {}
impl std::convert::TryFrom<NSObject> for INCallGroup {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INCallGroup, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INCallGroup").unwrap()) };
        if is_kind_of {
            Ok(INCallGroup(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INCallGroup")
        }
    }
}
impl IINCallGroup for INCallGroup {}
pub trait IINCallGroup: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithGroupName_groupId_(
        &self,
        groupName: NSString,
        groupId: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithGroupName : groupName, groupId : groupId)
    }
    unsafe fn groupName(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, groupName)
    }
    unsafe fn groupId(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, groupId)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INCallRecord(pub id);
impl std::ops::Deref for INCallRecord {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INCallRecord {}
impl INCallRecord {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INCallRecord").unwrap(), alloc) })
    }
}
impl PNSCopying for INCallRecord {}
impl PNSSecureCoding for INCallRecord {}
impl INSObject for INCallRecord {}
impl PNSObject for INCallRecord {}
impl std::convert::TryFrom<NSObject> for INCallRecord {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INCallRecord, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INCallRecord").unwrap()) };
        if is_kind_of {
            Ok(INCallRecord(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INCallRecord")
        }
    }
}
impl IINCallRecord for INCallRecord {}
pub trait IINCallRecord: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithIdentifier_dateCreated_callRecordType_callCapability_callDuration_unseen_participants_numberOfCalls_isCallerIdBlocked_(
        &self,
        identifier: NSString,
        dateCreated: NSDate,
        callRecordType: INCallRecordType,
        callCapability: INCallCapability,
        callDuration: NSNumber,
        unseen: NSNumber,
        participants: NSArray,
        numberOfCalls: NSNumber,
        isCallerIdBlocked: NSNumber,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithIdentifier : identifier, dateCreated : dateCreated, callRecordType : callRecordType, callCapability : callCapability, callDuration : callDuration, unseen : unseen, participants : participants, numberOfCalls : numberOfCalls, isCallerIdBlocked : isCallerIdBlocked)
    }
    unsafe fn initWithIdentifier_dateCreated_callRecordType_callCapability_callDuration_unseen_(
        &self,
        identifier: NSString,
        dateCreated: NSDate,
        callRecordType: INCallRecordType,
        callCapability: INCallCapability,
        callDuration: NSNumber,
        unseen: NSNumber,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithIdentifier : identifier, dateCreated : dateCreated, callRecordType : callRecordType, callCapability : callCapability, callDuration : callDuration, unseen : unseen)
    }
    unsafe fn initWithIdentifier_dateCreated_callRecordType_callCapability_callDuration_unseen_numberOfCalls_(
        &self,
        identifier: NSString,
        dateCreated: NSDate,
        callRecordType: INCallRecordType,
        callCapability: INCallCapability,
        callDuration: NSNumber,
        unseen: NSNumber,
        numberOfCalls: NSNumber,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithIdentifier : identifier, dateCreated : dateCreated, callRecordType : callRecordType, callCapability : callCapability, callDuration : callDuration, unseen : unseen, numberOfCalls : numberOfCalls)
    }
    unsafe fn identifier(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, identifier)
    }
    unsafe fn dateCreated(&self) -> NSDate
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, dateCreated)
    }
    unsafe fn callRecordType(&self) -> INCallRecordType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, callRecordType)
    }
    unsafe fn callDuration(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, callDuration)
    }
    unsafe fn unseen(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, unseen)
    }
    unsafe fn callCapability(&self) -> INCallCapability
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, callCapability)
    }
    unsafe fn numberOfCalls(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfCalls)
    }
    unsafe fn isCallerIdBlocked(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isCallerIdBlocked)
    }
    unsafe fn participants(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, participants)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INCallRecordFilter(pub id);
impl std::ops::Deref for INCallRecordFilter {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INCallRecordFilter {}
impl INCallRecordFilter {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INCallRecordFilter").unwrap(), alloc) })
    }
}
impl PNSCopying for INCallRecordFilter {}
impl PNSSecureCoding for INCallRecordFilter {}
impl INSObject for INCallRecordFilter {}
impl PNSObject for INCallRecordFilter {}
impl std::convert::TryFrom<NSObject> for INCallRecordFilter {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INCallRecordFilter, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INCallRecordFilter").unwrap()) };
        if is_kind_of {
            Ok(INCallRecordFilter(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INCallRecordFilter")
        }
    }
}
impl IINCallRecordFilter for INCallRecordFilter {}
pub trait IINCallRecordFilter: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithParticipants_callTypes_callCapability_(
        &self,
        participants: NSArray,
        callTypes: INCallRecordTypeOptions,
        callCapability: INCallCapability,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithParticipants : participants, callTypes : callTypes, callCapability : callCapability)
    }
    unsafe fn participants(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, participants)
    }
    unsafe fn callTypes(&self) -> INCallRecordTypeOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, callTypes)
    }
    unsafe fn callCapability(&self) -> INCallCapability
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, callCapability)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INCallRecordResolutionResult(pub id);
impl std::ops::Deref for INCallRecordResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INCallRecordResolutionResult {}
impl INCallRecordResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INCallRecordResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INCallRecordResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INCallRecordResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INCallRecordResolutionResult, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INCallRecordResolutionResult").unwrap()) };
        if is_kind_of {
            Ok(INCallRecordResolutionResult(parent.0))
        } else {
            Err ("This INIntentResolutionResult cannot be downcasted to INCallRecordResolutionResult" ,)
        }
    }
}
impl INSObject for INCallRecordResolutionResult {}
impl PNSObject for INCallRecordResolutionResult {}
impl IINCallRecordResolutionResult for INCallRecordResolutionResult {}
pub trait IINCallRecordResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedCallRecord_(resolvedCallRecord: INCallRecord) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INCallRecordResolutionResult").unwrap(), successWithResolvedCallRecord : resolvedCallRecord)
    }
    unsafe fn disambiguationWithCallRecordsToDisambiguate_(
        callRecordsToDisambiguate: NSArray,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INCallRecordResolutionResult").unwrap(), disambiguationWithCallRecordsToDisambiguate : callRecordsToDisambiguate)
    }
    unsafe fn confirmationRequiredWithCallRecordToConfirm_(
        callRecordToConfirm: INCallRecord,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INCallRecordResolutionResult").unwrap(), confirmationRequiredWithCallRecordToConfirm : callRecordToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INCallRecordTypeOptionsResolutionResult(pub id);
impl std::ops::Deref for INCallRecordTypeOptionsResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INCallRecordTypeOptionsResolutionResult {}
impl INCallRecordTypeOptionsResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INCallRecordTypeOptionsResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INCallRecordTypeOptionsResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INCallRecordTypeOptionsResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INCallRecordTypeOptionsResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INCallRecordTypeOptionsResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INCallRecordTypeOptionsResolutionResult(parent.0))
        } else {
            Err ("This INIntentResolutionResult cannot be downcasted to INCallRecordTypeOptionsResolutionResult" ,)
        }
    }
}
impl INSObject for INCallRecordTypeOptionsResolutionResult {}
impl PNSObject for INCallRecordTypeOptionsResolutionResult {}
impl IINCallRecordTypeOptionsResolutionResult for INCallRecordTypeOptionsResolutionResult {}
pub trait IINCallRecordTypeOptionsResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedCallRecordTypeOptions_(
        resolvedCallRecordTypeOptions: INCallRecordTypeOptions,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INCallRecordTypeOptionsResolutionResult").unwrap(), successWithResolvedCallRecordTypeOptions : resolvedCallRecordTypeOptions)
    }
    unsafe fn confirmationRequiredWithCallRecordTypeOptionsToConfirm_(
        callRecordTypeOptionsToConfirm: INCallRecordTypeOptions,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INCallRecordTypeOptionsResolutionResult").unwrap(), confirmationRequiredWithCallRecordTypeOptionsToConfirm : callRecordTypeOptionsToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INCallRecordTypeResolutionResult(pub id);
impl std::ops::Deref for INCallRecordTypeResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INCallRecordTypeResolutionResult {}
impl INCallRecordTypeResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INCallRecordTypeResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INCallRecordTypeResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INCallRecordTypeResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INCallRecordTypeResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INCallRecordTypeResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INCallRecordTypeResolutionResult(parent.0))
        } else {
            Err ("This INIntentResolutionResult cannot be downcasted to INCallRecordTypeResolutionResult" ,)
        }
    }
}
impl INSObject for INCallRecordTypeResolutionResult {}
impl PNSObject for INCallRecordTypeResolutionResult {}
impl IINCallRecordTypeResolutionResult for INCallRecordTypeResolutionResult {}
pub trait IINCallRecordTypeResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedCallRecordType_(
        resolvedCallRecordType: INCallRecordType,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INCallRecordTypeResolutionResult").unwrap(), successWithResolvedCallRecordType : resolvedCallRecordType)
    }
    unsafe fn confirmationRequiredWithCallRecordTypeToConfirm_(
        callRecordTypeToConfirm: INCallRecordType,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INCallRecordTypeResolutionResult").unwrap(), confirmationRequiredWithCallRecordTypeToConfirm : callRecordTypeToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INCar(pub id);
impl std::ops::Deref for INCar {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INCar {}
impl INCar {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INCar").unwrap(), alloc) })
    }
}
impl PNSCopying for INCar {}
impl PNSSecureCoding for INCar {}
impl INSObject for INCar {}
impl PNSObject for INCar {}
impl std::convert::TryFrom<NSObject> for INCar {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INCar, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INCar").unwrap()) };
        if is_kind_of {
            Ok(INCar(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INCar")
        }
    }
}
impl IINCar for INCar {}
pub trait IINCar: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCarIdentifier_displayName_year_make_model_color_headUnit_supportedChargingConnectors_(
        &self,
        carIdentifier: NSString,
        displayName: NSString,
        year: NSString,
        make: NSString,
        model: NSString,
        color: CGColorRef,
        headUnit: INCarHeadUnit,
        supportedChargingConnectors: NSArray,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCarIdentifier : carIdentifier, displayName : displayName, year : year, make : make, model : model, color : color, headUnit : headUnit, supportedChargingConnectors : supportedChargingConnectors)
    }
    unsafe fn setMaximumPower_forChargingConnectorType_(
        &self,
        power: NSMeasurement,
        chargingConnectorType: NSString,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMaximumPower : power, forChargingConnectorType : chargingConnectorType)
    }
    unsafe fn maximumPowerForChargingConnectorType_(
        &self,
        chargingConnectorType: NSString,
    ) -> NSMeasurement
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, maximumPowerForChargingConnectorType : chargingConnectorType)
    }
    unsafe fn carIdentifier(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, carIdentifier)
    }
    unsafe fn displayName(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, displayName)
    }
    unsafe fn year(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, year)
    }
    unsafe fn make(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, make)
    }
    unsafe fn model(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, model)
    }
    unsafe fn color(&self) -> CGColorRef
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, color)
    }
    unsafe fn headUnit(&self) -> INCarHeadUnit
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, headUnit)
    }
    unsafe fn supportedChargingConnectors(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, supportedChargingConnectors)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INCarAirCirculationModeResolutionResult(pub id);
impl std::ops::Deref for INCarAirCirculationModeResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INCarAirCirculationModeResolutionResult {}
impl INCarAirCirculationModeResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INCarAirCirculationModeResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INCarAirCirculationModeResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INCarAirCirculationModeResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INCarAirCirculationModeResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INCarAirCirculationModeResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INCarAirCirculationModeResolutionResult(parent.0))
        } else {
            Err ("This INIntentResolutionResult cannot be downcasted to INCarAirCirculationModeResolutionResult" ,)
        }
    }
}
impl INSObject for INCarAirCirculationModeResolutionResult {}
impl PNSObject for INCarAirCirculationModeResolutionResult {}
impl IINCarAirCirculationModeResolutionResult for INCarAirCirculationModeResolutionResult {}
pub trait IINCarAirCirculationModeResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedCarAirCirculationMode_(
        resolvedCarAirCirculationMode: INCarAirCirculationMode,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INCarAirCirculationModeResolutionResult").unwrap(), successWithResolvedCarAirCirculationMode : resolvedCarAirCirculationMode)
    }
    unsafe fn successWithResolvedValue_(resolvedValue: INCarAirCirculationMode) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INCarAirCirculationModeResolutionResult").unwrap(), successWithResolvedValue : resolvedValue)
    }
    unsafe fn confirmationRequiredWithCarAirCirculationModeToConfirm_(
        carAirCirculationModeToConfirm: INCarAirCirculationMode,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INCarAirCirculationModeResolutionResult").unwrap(), confirmationRequiredWithCarAirCirculationModeToConfirm : carAirCirculationModeToConfirm)
    }
    unsafe fn confirmationRequiredWithValueToConfirm_(
        valueToConfirm: INCarAirCirculationMode,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INCarAirCirculationModeResolutionResult").unwrap(), confirmationRequiredWithValueToConfirm : valueToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INCarAudioSourceResolutionResult(pub id);
impl std::ops::Deref for INCarAudioSourceResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INCarAudioSourceResolutionResult {}
impl INCarAudioSourceResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INCarAudioSourceResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INCarAudioSourceResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INCarAudioSourceResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INCarAudioSourceResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INCarAudioSourceResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INCarAudioSourceResolutionResult(parent.0))
        } else {
            Err ("This INIntentResolutionResult cannot be downcasted to INCarAudioSourceResolutionResult" ,)
        }
    }
}
impl INSObject for INCarAudioSourceResolutionResult {}
impl PNSObject for INCarAudioSourceResolutionResult {}
impl IINCarAudioSourceResolutionResult for INCarAudioSourceResolutionResult {}
pub trait IINCarAudioSourceResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedCarAudioSource_(
        resolvedCarAudioSource: INCarAudioSource,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INCarAudioSourceResolutionResult").unwrap(), successWithResolvedCarAudioSource : resolvedCarAudioSource)
    }
    unsafe fn successWithResolvedValue_(resolvedValue: INCarAudioSource) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INCarAudioSourceResolutionResult").unwrap(), successWithResolvedValue : resolvedValue)
    }
    unsafe fn confirmationRequiredWithCarAudioSourceToConfirm_(
        carAudioSourceToConfirm: INCarAudioSource,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INCarAudioSourceResolutionResult").unwrap(), confirmationRequiredWithCarAudioSourceToConfirm : carAudioSourceToConfirm)
    }
    unsafe fn confirmationRequiredWithValueToConfirm_(
        valueToConfirm: INCarAudioSource,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INCarAudioSourceResolutionResult").unwrap(), confirmationRequiredWithValueToConfirm : valueToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INCarDefrosterResolutionResult(pub id);
impl std::ops::Deref for INCarDefrosterResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INCarDefrosterResolutionResult {}
impl INCarDefrosterResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INCarDefrosterResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INCarDefrosterResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INCarDefrosterResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INCarDefrosterResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INCarDefrosterResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INCarDefrosterResolutionResult(parent.0))
        } else {
            Err ("This INIntentResolutionResult cannot be downcasted to INCarDefrosterResolutionResult" ,)
        }
    }
}
impl INSObject for INCarDefrosterResolutionResult {}
impl PNSObject for INCarDefrosterResolutionResult {}
impl IINCarDefrosterResolutionResult for INCarDefrosterResolutionResult {}
pub trait IINCarDefrosterResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedCarDefroster_(resolvedCarDefroster: INCarDefroster) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INCarDefrosterResolutionResult").unwrap(), successWithResolvedCarDefroster : resolvedCarDefroster)
    }
    unsafe fn successWithResolvedValue_(resolvedValue: INCarDefroster) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INCarDefrosterResolutionResult").unwrap(), successWithResolvedValue : resolvedValue)
    }
    unsafe fn confirmationRequiredWithCarDefrosterToConfirm_(
        carDefrosterToConfirm: INCarDefroster,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INCarDefrosterResolutionResult").unwrap(), confirmationRequiredWithCarDefrosterToConfirm : carDefrosterToConfirm)
    }
    unsafe fn confirmationRequiredWithValueToConfirm_(
        valueToConfirm: INCarDefroster,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INCarDefrosterResolutionResult").unwrap(), confirmationRequiredWithValueToConfirm : valueToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INCarHeadUnit(pub id);
impl std::ops::Deref for INCarHeadUnit {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INCarHeadUnit {}
impl INCarHeadUnit {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INCarHeadUnit").unwrap(), alloc) })
    }
}
impl PNSCopying for INCarHeadUnit {}
impl PNSSecureCoding for INCarHeadUnit {}
impl INSObject for INCarHeadUnit {}
impl PNSObject for INCarHeadUnit {}
impl std::convert::TryFrom<NSObject> for INCarHeadUnit {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INCarHeadUnit, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INCarHeadUnit").unwrap()) };
        if is_kind_of {
            Ok(INCarHeadUnit(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INCarHeadUnit")
        }
    }
}
impl IINCarHeadUnit for INCarHeadUnit {}
pub trait IINCarHeadUnit: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithBluetoothIdentifier_iAP2Identifier_(
        &self,
        bluetoothIdentifier: NSString,
        iAP2Identifier: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithBluetoothIdentifier : bluetoothIdentifier, iAP2Identifier : iAP2Identifier)
    }
    unsafe fn bluetoothIdentifier(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, bluetoothIdentifier)
    }
    unsafe fn iAP2Identifier(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, iAP2Identifier)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INCarSeatResolutionResult(pub id);
impl std::ops::Deref for INCarSeatResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INCarSeatResolutionResult {}
impl INCarSeatResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INCarSeatResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INCarSeatResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INCarSeatResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INCarSeatResolutionResult, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INCarSeatResolutionResult").unwrap()) };
        if is_kind_of {
            Ok(INCarSeatResolutionResult(parent.0))
        } else {
            Err("This INIntentResolutionResult cannot be downcasted to INCarSeatResolutionResult")
        }
    }
}
impl INSObject for INCarSeatResolutionResult {}
impl PNSObject for INCarSeatResolutionResult {}
impl IINCarSeatResolutionResult for INCarSeatResolutionResult {}
pub trait IINCarSeatResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedCarSeat_(resolvedCarSeat: INCarSeat) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INCarSeatResolutionResult").unwrap(), successWithResolvedCarSeat : resolvedCarSeat)
    }
    unsafe fn successWithResolvedValue_(resolvedValue: INCarSeat) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INCarSeatResolutionResult").unwrap(), successWithResolvedValue : resolvedValue)
    }
    unsafe fn confirmationRequiredWithCarSeatToConfirm_(carSeatToConfirm: INCarSeat) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INCarSeatResolutionResult").unwrap(), confirmationRequiredWithCarSeatToConfirm : carSeatToConfirm)
    }
    unsafe fn confirmationRequiredWithValueToConfirm_(valueToConfirm: INCarSeat) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INCarSeatResolutionResult").unwrap(), confirmationRequiredWithValueToConfirm : valueToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INCarSignalOptionsResolutionResult(pub id);
impl std::ops::Deref for INCarSignalOptionsResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INCarSignalOptionsResolutionResult {}
impl INCarSignalOptionsResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INCarSignalOptionsResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INCarSignalOptionsResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INCarSignalOptionsResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INCarSignalOptionsResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INCarSignalOptionsResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INCarSignalOptionsResolutionResult(parent.0))
        } else {
            Err ("This INIntentResolutionResult cannot be downcasted to INCarSignalOptionsResolutionResult" ,)
        }
    }
}
impl INSObject for INCarSignalOptionsResolutionResult {}
impl PNSObject for INCarSignalOptionsResolutionResult {}
impl IINCarSignalOptionsResolutionResult for INCarSignalOptionsResolutionResult {}
pub trait IINCarSignalOptionsResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedCarSignalOptions_(
        resolvedCarSignalOptions: INCarSignalOptions,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INCarSignalOptionsResolutionResult").unwrap(), successWithResolvedCarSignalOptions : resolvedCarSignalOptions)
    }
    unsafe fn successWithResolvedValue_(resolvedValue: INCarSignalOptions) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INCarSignalOptionsResolutionResult").unwrap(), successWithResolvedValue : resolvedValue)
    }
    unsafe fn confirmationRequiredWithCarSignalOptionsToConfirm_(
        carSignalOptionsToConfirm: INCarSignalOptions,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INCarSignalOptionsResolutionResult").unwrap(), confirmationRequiredWithCarSignalOptionsToConfirm : carSignalOptionsToConfirm)
    }
    unsafe fn confirmationRequiredWithValueToConfirm_(
        valueToConfirm: INCarSignalOptions,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INCarSignalOptionsResolutionResult").unwrap(), confirmationRequiredWithValueToConfirm : valueToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INCurrencyAmountResolutionResult(pub id);
impl std::ops::Deref for INCurrencyAmountResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INCurrencyAmountResolutionResult {}
impl INCurrencyAmountResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INCurrencyAmountResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INCurrencyAmountResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INCurrencyAmountResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INCurrencyAmountResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INCurrencyAmountResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INCurrencyAmountResolutionResult(parent.0))
        } else {
            Err ("This INIntentResolutionResult cannot be downcasted to INCurrencyAmountResolutionResult" ,)
        }
    }
}
impl INSObject for INCurrencyAmountResolutionResult {}
impl PNSObject for INCurrencyAmountResolutionResult {}
impl IINCurrencyAmountResolutionResult for INCurrencyAmountResolutionResult {}
pub trait IINCurrencyAmountResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedCurrencyAmount_(
        resolvedCurrencyAmount: INCurrencyAmount,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INCurrencyAmountResolutionResult").unwrap(), successWithResolvedCurrencyAmount : resolvedCurrencyAmount)
    }
    unsafe fn disambiguationWithCurrencyAmountsToDisambiguate_(
        currencyAmountsToDisambiguate: NSArray,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INCurrencyAmountResolutionResult").unwrap(), disambiguationWithCurrencyAmountsToDisambiguate : currencyAmountsToDisambiguate)
    }
    unsafe fn confirmationRequiredWithCurrencyAmountToConfirm_(
        currencyAmountToConfirm: INCurrencyAmount,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INCurrencyAmountResolutionResult").unwrap(), confirmationRequiredWithCurrencyAmountToConfirm : currencyAmountToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INDateSearchTypeResolutionResult(pub id);
impl std::ops::Deref for INDateSearchTypeResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INDateSearchTypeResolutionResult {}
impl INDateSearchTypeResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INDateSearchTypeResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INDateSearchTypeResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INDateSearchTypeResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INDateSearchTypeResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INDateSearchTypeResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INDateSearchTypeResolutionResult(parent.0))
        } else {
            Err ("This INIntentResolutionResult cannot be downcasted to INDateSearchTypeResolutionResult" ,)
        }
    }
}
impl INSObject for INDateSearchTypeResolutionResult {}
impl PNSObject for INDateSearchTypeResolutionResult {}
impl IINDateSearchTypeResolutionResult for INDateSearchTypeResolutionResult {}
pub trait IINDateSearchTypeResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedDateSearchType_(
        resolvedDateSearchType: INDateSearchType,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INDateSearchTypeResolutionResult").unwrap(), successWithResolvedDateSearchType : resolvedDateSearchType)
    }
    unsafe fn confirmationRequiredWithDateSearchTypeToConfirm_(
        dateSearchTypeToConfirm: INDateSearchType,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INDateSearchTypeResolutionResult").unwrap(), confirmationRequiredWithDateSearchTypeToConfirm : dateSearchTypeToConfirm)
    }
}
pub type INDayOfWeekOptions = NSUInteger;
pub type INDeleteTasksTaskListUnsupportedReason = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INDeleteTasksTaskListResolutionResult(pub id);
impl std::ops::Deref for INDeleteTasksTaskListResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INDeleteTasksTaskListResolutionResult {}
impl INDeleteTasksTaskListResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INDeleteTasksTaskListResolutionResult").unwrap(), alloc) })
    }
}
impl IINTaskListResolutionResult for INDeleteTasksTaskListResolutionResult {}
impl std::convert::TryFrom<INTaskListResolutionResult> for INDeleteTasksTaskListResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INTaskListResolutionResult,
    ) -> Result<INDeleteTasksTaskListResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INDeleteTasksTaskListResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INDeleteTasksTaskListResolutionResult(parent.0))
        } else {
            Err ("This INTaskListResolutionResult cannot be downcasted to INDeleteTasksTaskListResolutionResult" ,)
        }
    }
}
impl IINIntentResolutionResult for INDeleteTasksTaskListResolutionResult {}
impl INSObject for INDeleteTasksTaskListResolutionResult {}
impl PNSObject for INDeleteTasksTaskListResolutionResult {}
impl IINDeleteTasksTaskListResolutionResult for INDeleteTasksTaskListResolutionResult {}
pub trait IINDeleteTasksTaskListResolutionResult: Sized + std::ops::Deref {
    unsafe fn initWithTaskListResolutionResult_(
        &self,
        taskListResolutionResult: INTaskListResolutionResult,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithTaskListResolutionResult : taskListResolutionResult)
    }
    unsafe fn unsupportedForReason_(reason: INDeleteTasksTaskListUnsupportedReason) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INDeleteTasksTaskListResolutionResult").unwrap(), unsupportedForReason : reason)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INTaskResolutionResult(pub id);
impl std::ops::Deref for INTaskResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INTaskResolutionResult {}
impl INTaskResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INTaskResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INTaskResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INTaskResolutionResult {
    type Error = &'static str;
    fn try_from(parent: INIntentResolutionResult) -> Result<INTaskResolutionResult, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INTaskResolutionResult").unwrap()) };
        if is_kind_of {
            Ok(INTaskResolutionResult(parent.0))
        } else {
            Err("This INIntentResolutionResult cannot be downcasted to INTaskResolutionResult")
        }
    }
}
impl INSObject for INTaskResolutionResult {}
impl PNSObject for INTaskResolutionResult {}
impl IINTaskResolutionResult for INTaskResolutionResult {}
pub trait IINTaskResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedTask_(resolvedTask: INTask) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INTaskResolutionResult").unwrap(), successWithResolvedTask : resolvedTask)
    }
    unsafe fn disambiguationWithTasksToDisambiguate_(tasksToDisambiguate: NSArray) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INTaskResolutionResult").unwrap(), disambiguationWithTasksToDisambiguate : tasksToDisambiguate)
    }
    unsafe fn confirmationRequiredWithTaskToConfirm_(taskToConfirm: INTask) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INTaskResolutionResult").unwrap(), confirmationRequiredWithTaskToConfirm : taskToConfirm)
    }
}
pub type INDeleteTasksTaskUnsupportedReason = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INDeleteTasksTaskResolutionResult(pub id);
impl std::ops::Deref for INDeleteTasksTaskResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INDeleteTasksTaskResolutionResult {}
impl INDeleteTasksTaskResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INDeleteTasksTaskResolutionResult").unwrap(), alloc) })
    }
}
impl IINTaskResolutionResult for INDeleteTasksTaskResolutionResult {}
impl From<INDeleteTasksTaskResolutionResult> for INTaskResolutionResult {
    fn from(child: INDeleteTasksTaskResolutionResult) -> INTaskResolutionResult {
        INTaskResolutionResult(child.0)
    }
}
impl std::convert::TryFrom<INTaskResolutionResult> for INDeleteTasksTaskResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INTaskResolutionResult,
    ) -> Result<INDeleteTasksTaskResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INDeleteTasksTaskResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INDeleteTasksTaskResolutionResult(parent.0))
        } else {
            Err ("This INTaskResolutionResult cannot be downcasted to INDeleteTasksTaskResolutionResult" ,)
        }
    }
}
impl IINIntentResolutionResult for INDeleteTasksTaskResolutionResult {}
impl INSObject for INDeleteTasksTaskResolutionResult {}
impl PNSObject for INDeleteTasksTaskResolutionResult {}
impl IINDeleteTasksTaskResolutionResult for INDeleteTasksTaskResolutionResult {}
pub trait IINDeleteTasksTaskResolutionResult: Sized + std::ops::Deref {
    unsafe fn initWithTaskResolutionResult_(
        &self,
        taskResolutionResult: INTaskResolutionResult,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithTaskResolutionResult : taskResolutionResult)
    }
    unsafe fn unsupportedForReason_(reason: INDeleteTasksTaskUnsupportedReason) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INDeleteTasksTaskResolutionResult").unwrap(), unsupportedForReason : reason)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INFileResolutionResult(pub id);
impl std::ops::Deref for INFileResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INFileResolutionResult {}
impl INFileResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INFileResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INFileResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INFileResolutionResult {
    type Error = &'static str;
    fn try_from(parent: INIntentResolutionResult) -> Result<INFileResolutionResult, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INFileResolutionResult").unwrap()) };
        if is_kind_of {
            Ok(INFileResolutionResult(parent.0))
        } else {
            Err("This INIntentResolutionResult cannot be downcasted to INFileResolutionResult")
        }
    }
}
impl INSObject for INFileResolutionResult {}
impl PNSObject for INFileResolutionResult {}
impl IINFileResolutionResult for INFileResolutionResult {}
pub trait IINFileResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedFile_(resolvedFile: INFile) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INFileResolutionResult").unwrap(), successWithResolvedFile : resolvedFile)
    }
    unsafe fn disambiguationWithFilesToDisambiguate_(filesToDisambiguate: NSArray) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INFileResolutionResult").unwrap(), disambiguationWithFilesToDisambiguate : filesToDisambiguate)
    }
    unsafe fn confirmationRequiredWithFileToConfirm_(fileToConfirm: INFile) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INFileResolutionResult").unwrap(), confirmationRequiredWithFileToConfirm : fileToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INFlight(pub id);
impl std::ops::Deref for INFlight {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INFlight {}
impl INFlight {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INFlight").unwrap(), alloc) })
    }
}
impl PNSCopying for INFlight {}
impl PNSSecureCoding for INFlight {}
impl INSObject for INFlight {}
impl PNSObject for INFlight {}
impl std::convert::TryFrom<NSObject> for INFlight {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INFlight, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INFlight").unwrap()) };
        if is_kind_of {
            Ok(INFlight(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INFlight")
        }
    }
}
impl IINFlight for INFlight {}
pub trait IINFlight: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithAirline_flightNumber_boardingTime_flightDuration_departureAirportGate_arrivalAirportGate_(
        &self,
        airline: INAirline,
        flightNumber: NSString,
        boardingTime: INDateComponentsRange,
        flightDuration: INDateComponentsRange,
        departureAirportGate: INAirportGate,
        arrivalAirportGate: INAirportGate,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithAirline : airline, flightNumber : flightNumber, boardingTime : boardingTime, flightDuration : flightDuration, departureAirportGate : departureAirportGate, arrivalAirportGate : arrivalAirportGate)
    }
    unsafe fn airline(&self) -> INAirline
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, airline)
    }
    unsafe fn flightNumber(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, flightNumber)
    }
    unsafe fn boardingTime(&self) -> INDateComponentsRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, boardingTime)
    }
    unsafe fn flightDuration(&self) -> INDateComponentsRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, flightDuration)
    }
    unsafe fn departureAirportGate(&self) -> INAirportGate
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, departureAirportGate)
    }
    unsafe fn arrivalAirportGate(&self) -> INAirportGate
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, arrivalAirportGate)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INFocusStatus(pub id);
impl std::ops::Deref for INFocusStatus {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INFocusStatus {}
impl INFocusStatus {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INFocusStatus").unwrap(), alloc) })
    }
}
impl PNSCopying for INFocusStatus {}
impl PNSSecureCoding for INFocusStatus {}
impl INSObject for INFocusStatus {}
impl PNSObject for INFocusStatus {}
impl std::convert::TryFrom<NSObject> for INFocusStatus {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INFocusStatus, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INFocusStatus").unwrap()) };
        if is_kind_of {
            Ok(INFocusStatus(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INFocusStatus")
        }
    }
}
impl IINFocusStatus for INFocusStatus {}
pub trait IINFocusStatus: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithIsFocused_(&self, isFocused: NSNumber) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithIsFocused : isFocused)
    }
    unsafe fn isFocused(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isFocused)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INLocationSearchTypeResolutionResult(pub id);
impl std::ops::Deref for INLocationSearchTypeResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INLocationSearchTypeResolutionResult {}
impl INLocationSearchTypeResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INLocationSearchTypeResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INLocationSearchTypeResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INLocationSearchTypeResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INLocationSearchTypeResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INLocationSearchTypeResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INLocationSearchTypeResolutionResult(parent.0))
        } else {
            Err ("This INIntentResolutionResult cannot be downcasted to INLocationSearchTypeResolutionResult" ,)
        }
    }
}
impl INSObject for INLocationSearchTypeResolutionResult {}
impl PNSObject for INLocationSearchTypeResolutionResult {}
impl IINLocationSearchTypeResolutionResult for INLocationSearchTypeResolutionResult {}
pub trait IINLocationSearchTypeResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedLocationSearchType_(
        resolvedLocationSearchType: INLocationSearchType,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INLocationSearchTypeResolutionResult").unwrap(), successWithResolvedLocationSearchType : resolvedLocationSearchType)
    }
    unsafe fn confirmationRequiredWithLocationSearchTypeToConfirm_(
        locationSearchTypeToConfirm: INLocationSearchType,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INLocationSearchTypeResolutionResult").unwrap(), confirmationRequiredWithLocationSearchTypeToConfirm : locationSearchTypeToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INMediaAffinityTypeResolutionResult(pub id);
impl std::ops::Deref for INMediaAffinityTypeResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INMediaAffinityTypeResolutionResult {}
impl INMediaAffinityTypeResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INMediaAffinityTypeResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INMediaAffinityTypeResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INMediaAffinityTypeResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INMediaAffinityTypeResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INMediaAffinityTypeResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INMediaAffinityTypeResolutionResult(parent.0))
        } else {
            Err ("This INIntentResolutionResult cannot be downcasted to INMediaAffinityTypeResolutionResult" ,)
        }
    }
}
impl INSObject for INMediaAffinityTypeResolutionResult {}
impl PNSObject for INMediaAffinityTypeResolutionResult {}
impl IINMediaAffinityTypeResolutionResult for INMediaAffinityTypeResolutionResult {}
pub trait IINMediaAffinityTypeResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedMediaAffinityType_(
        resolvedMediaAffinityType: INMediaAffinityType,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INMediaAffinityTypeResolutionResult").unwrap(), successWithResolvedMediaAffinityType : resolvedMediaAffinityType)
    }
    unsafe fn confirmationRequiredWithMediaAffinityTypeToConfirm_(
        mediaAffinityTypeToConfirm: INMediaAffinityType,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INMediaAffinityTypeResolutionResult").unwrap(), confirmationRequiredWithMediaAffinityTypeToConfirm : mediaAffinityTypeToConfirm)
    }
}
pub type INMediaDestinationType = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INMediaDestination(pub id);
impl std::ops::Deref for INMediaDestination {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INMediaDestination {}
impl INMediaDestination {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INMediaDestination").unwrap(), alloc) })
    }
}
impl PNSCopying for INMediaDestination {}
impl PNSSecureCoding for INMediaDestination {}
impl INSObject for INMediaDestination {}
impl PNSObject for INMediaDestination {}
impl std::convert::TryFrom<NSObject> for INMediaDestination {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INMediaDestination, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INMediaDestination").unwrap()) };
        if is_kind_of {
            Ok(INMediaDestination(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INMediaDestination")
        }
    }
}
impl IINMediaDestination for INMediaDestination {}
pub trait IINMediaDestination: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn mediaDestinationType(&self) -> INMediaDestinationType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, mediaDestinationType)
    }
    unsafe fn playlistName(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, playlistName)
    }
    unsafe fn libraryDestination() -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INMediaDestination").unwrap(), libraryDestination)
    }
    unsafe fn playlistDestinationWithName_(playlistName: NSString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INMediaDestination").unwrap(), playlistDestinationWithName : playlistName)
    }
}
pub type INMediaItemType = NSInteger;
pub type INMediaReference = NSInteger;
pub type INMediaSortOrder = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INMediaSearch(pub id);
impl std::ops::Deref for INMediaSearch {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INMediaSearch {}
impl INMediaSearch {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INMediaSearch").unwrap(), alloc) })
    }
}
impl PNSCopying for INMediaSearch {}
impl PNSSecureCoding for INMediaSearch {}
impl INSObject for INMediaSearch {}
impl PNSObject for INMediaSearch {}
impl std::convert::TryFrom<NSObject> for INMediaSearch {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INMediaSearch, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INMediaSearch").unwrap()) };
        if is_kind_of {
            Ok(INMediaSearch(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INMediaSearch")
        }
    }
}
impl IINMediaSearch for INMediaSearch {}
pub trait IINMediaSearch: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithMediaType_sortOrder_mediaName_artistName_albumName_genreNames_moodNames_releaseDate_reference_mediaIdentifier_(
        &self,
        mediaType: INMediaItemType,
        sortOrder: INMediaSortOrder,
        mediaName: NSString,
        artistName: NSString,
        albumName: NSString,
        genreNames: NSArray,
        moodNames: NSArray,
        releaseDate: INDateComponentsRange,
        reference: INMediaReference,
        mediaIdentifier: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithMediaType : mediaType, sortOrder : sortOrder, mediaName : mediaName, artistName : artistName, albumName : albumName, genreNames : genreNames, moodNames : moodNames, releaseDate : releaseDate, reference : reference, mediaIdentifier : mediaIdentifier)
    }
    unsafe fn mediaType(&self) -> INMediaItemType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, mediaType)
    }
    unsafe fn sortOrder(&self) -> INMediaSortOrder
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sortOrder)
    }
    unsafe fn mediaName(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, mediaName)
    }
    unsafe fn artistName(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, artistName)
    }
    unsafe fn albumName(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, albumName)
    }
    unsafe fn genreNames(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, genreNames)
    }
    unsafe fn moodNames(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, moodNames)
    }
    unsafe fn releaseDate(&self) -> INDateComponentsRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, releaseDate)
    }
    unsafe fn reference(&self) -> INMediaReference
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, reference)
    }
    unsafe fn mediaIdentifier(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, mediaIdentifier)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INMessageAttributeOptionsResolutionResult(pub id);
impl std::ops::Deref for INMessageAttributeOptionsResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INMessageAttributeOptionsResolutionResult {}
impl INMessageAttributeOptionsResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INMessageAttributeOptionsResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INMessageAttributeOptionsResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INMessageAttributeOptionsResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INMessageAttributeOptionsResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INMessageAttributeOptionsResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INMessageAttributeOptionsResolutionResult(parent.0))
        } else {
            Err ("This INIntentResolutionResult cannot be downcasted to INMessageAttributeOptionsResolutionResult" ,)
        }
    }
}
impl INSObject for INMessageAttributeOptionsResolutionResult {}
impl PNSObject for INMessageAttributeOptionsResolutionResult {}
impl IINMessageAttributeOptionsResolutionResult for INMessageAttributeOptionsResolutionResult {}
pub trait IINMessageAttributeOptionsResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedMessageAttributeOptions_(
        resolvedMessageAttributeOptions: INMessageAttributeOptions,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INMessageAttributeOptionsResolutionResult").unwrap(), successWithResolvedMessageAttributeOptions : resolvedMessageAttributeOptions)
    }
    unsafe fn successWithResolvedValue_(resolvedValue: INMessageAttributeOptions) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INMessageAttributeOptionsResolutionResult").unwrap(), successWithResolvedValue : resolvedValue)
    }
    unsafe fn confirmationRequiredWithMessageAttributeOptionsToConfirm_(
        messageAttributeOptionsToConfirm: INMessageAttributeOptions,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INMessageAttributeOptionsResolutionResult").unwrap(), confirmationRequiredWithMessageAttributeOptionsToConfirm : messageAttributeOptionsToConfirm)
    }
    unsafe fn confirmationRequiredWithValueToConfirm_(
        valueToConfirm: INMessageAttributeOptions,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INMessageAttributeOptionsResolutionResult").unwrap(), confirmationRequiredWithValueToConfirm : valueToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INMessageAttributeResolutionResult(pub id);
impl std::ops::Deref for INMessageAttributeResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INMessageAttributeResolutionResult {}
impl INMessageAttributeResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INMessageAttributeResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INMessageAttributeResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INMessageAttributeResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INMessageAttributeResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INMessageAttributeResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INMessageAttributeResolutionResult(parent.0))
        } else {
            Err ("This INIntentResolutionResult cannot be downcasted to INMessageAttributeResolutionResult" ,)
        }
    }
}
impl INSObject for INMessageAttributeResolutionResult {}
impl PNSObject for INMessageAttributeResolutionResult {}
impl IINMessageAttributeResolutionResult for INMessageAttributeResolutionResult {}
pub trait IINMessageAttributeResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedMessageAttribute_(
        resolvedMessageAttribute: INMessageAttribute,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INMessageAttributeResolutionResult").unwrap(), successWithResolvedMessageAttribute : resolvedMessageAttribute)
    }
    unsafe fn successWithResolvedValue_(resolvedValue: INMessageAttribute) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INMessageAttributeResolutionResult").unwrap(), successWithResolvedValue : resolvedValue)
    }
    unsafe fn confirmationRequiredWithMessageAttributeToConfirm_(
        messageAttributeToConfirm: INMessageAttribute,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INMessageAttributeResolutionResult").unwrap(), confirmationRequiredWithMessageAttributeToConfirm : messageAttributeToConfirm)
    }
    unsafe fn confirmationRequiredWithValueToConfirm_(
        valueToConfirm: INMessageAttribute,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INMessageAttributeResolutionResult").unwrap(), confirmationRequiredWithValueToConfirm : valueToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INMessageLinkMetadata(pub id);
impl std::ops::Deref for INMessageLinkMetadata {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INMessageLinkMetadata {}
impl INMessageLinkMetadata {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INMessageLinkMetadata").unwrap(), alloc) })
    }
}
impl PNSCopying for INMessageLinkMetadata {}
impl PNSSecureCoding for INMessageLinkMetadata {}
impl INSObject for INMessageLinkMetadata {}
impl PNSObject for INMessageLinkMetadata {}
impl std::convert::TryFrom<NSObject> for INMessageLinkMetadata {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INMessageLinkMetadata, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INMessageLinkMetadata").unwrap()) };
        if is_kind_of {
            Ok(INMessageLinkMetadata(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INMessageLinkMetadata")
        }
    }
}
impl IINMessageLinkMetadata for INMessageLinkMetadata {}
pub trait IINMessageLinkMetadata: Sized + std::ops::Deref {
    unsafe fn initWithSiteName_summary_title_openGraphType_linkURL_(
        &self,
        siteName: NSString,
        summary: NSString,
        title: NSString,
        openGraphType: NSString,
        linkURL: NSURL,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithSiteName : siteName, summary : summary, title : title, openGraphType : openGraphType, linkURL : linkURL)
    }
    unsafe fn siteName(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, siteName)
    }
    unsafe fn setSiteName_(&self, siteName: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSiteName : siteName)
    }
    unsafe fn summary(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, summary)
    }
    unsafe fn setSummary_(&self, summary: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSummary : summary)
    }
    unsafe fn title(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, title)
    }
    unsafe fn setTitle_(&self, title: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTitle : title)
    }
    unsafe fn openGraphType(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, openGraphType)
    }
    unsafe fn setOpenGraphType_(&self, openGraphType: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setOpenGraphType : openGraphType)
    }
    unsafe fn linkURL(&self) -> NSURL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, linkURL)
    }
    unsafe fn setLinkURL_(&self, linkURL: NSURL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLinkURL : linkURL)
    }
}
pub type INMessageReactionType = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INMessageReaction(pub id);
impl std::ops::Deref for INMessageReaction {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INMessageReaction {}
impl INMessageReaction {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INMessageReaction").unwrap(), alloc) })
    }
}
impl PNSCopying for INMessageReaction {}
impl PNSSecureCoding for INMessageReaction {}
impl INSObject for INMessageReaction {}
impl PNSObject for INMessageReaction {}
impl std::convert::TryFrom<NSObject> for INMessageReaction {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INMessageReaction, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INMessageReaction").unwrap()) };
        if is_kind_of {
            Ok(INMessageReaction(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INMessageReaction")
        }
    }
}
impl IINMessageReaction for INMessageReaction {}
pub trait IINMessageReaction: Sized + std::ops::Deref {
    unsafe fn initWithReactionType_reactionDescription_emoji_(
        &self,
        reactionType: INMessageReactionType,
        reactionDescription: NSString,
        emoji: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithReactionType : reactionType, reactionDescription : reactionDescription, emoji : emoji)
    }
    unsafe fn reactionType(&self) -> INMessageReactionType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, reactionType)
    }
    unsafe fn reactionDescription(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, reactionDescription)
    }
    unsafe fn emoji(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, emoji)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INNote(pub id);
impl std::ops::Deref for INNote {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INNote {}
impl INNote {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INNote").unwrap(), alloc) })
    }
}
impl PNSCopying for INNote {}
impl PNSSecureCoding for INNote {}
impl INSObject for INNote {}
impl PNSObject for INNote {}
impl std::convert::TryFrom<NSObject> for INNote {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INNote, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INNote").unwrap()) };
        if is_kind_of {
            Ok(INNote(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INNote")
        }
    }
}
impl IINNote for INNote {}
pub trait IINNote: Sized + std::ops::Deref {
    unsafe fn initWithTitle_contents_groupName_createdDateComponents_modifiedDateComponents_identifier_(
        &self,
        title: INSpeakableString,
        contents: NSArray,
        groupName: INSpeakableString,
        createdDateComponents: NSDateComponents,
        modifiedDateComponents: NSDateComponents,
        identifier: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithTitle : title, contents : contents, groupName : groupName, createdDateComponents : createdDateComponents, modifiedDateComponents : modifiedDateComponents, identifier : identifier)
    }
    unsafe fn title(&self) -> INSpeakableString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, title)
    }
    unsafe fn contents(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contents)
    }
    unsafe fn groupName(&self) -> INSpeakableString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, groupName)
    }
    unsafe fn createdDateComponents(&self) -> NSDateComponents
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, createdDateComponents)
    }
    unsafe fn modifiedDateComponents(&self) -> NSDateComponents
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, modifiedDateComponents)
    }
    unsafe fn identifier(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, identifier)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INNoteContentResolutionResult(pub id);
impl std::ops::Deref for INNoteContentResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INNoteContentResolutionResult {}
impl INNoteContentResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INNoteContentResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INNoteContentResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INNoteContentResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INNoteContentResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INNoteContentResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INNoteContentResolutionResult(parent.0))
        } else {
            Err ("This INIntentResolutionResult cannot be downcasted to INNoteContentResolutionResult" ,)
        }
    }
}
impl INSObject for INNoteContentResolutionResult {}
impl PNSObject for INNoteContentResolutionResult {}
impl IINNoteContentResolutionResult for INNoteContentResolutionResult {}
pub trait IINNoteContentResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedNoteContent_(resolvedNoteContent: INNoteContent) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INNoteContentResolutionResult").unwrap(), successWithResolvedNoteContent : resolvedNoteContent)
    }
    unsafe fn disambiguationWithNoteContentsToDisambiguate_(
        noteContentsToDisambiguate: NSArray,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INNoteContentResolutionResult").unwrap(), disambiguationWithNoteContentsToDisambiguate : noteContentsToDisambiguate)
    }
    unsafe fn confirmationRequiredWithNoteContentToConfirm_(
        noteContentToConfirm: INNoteContent,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INNoteContentResolutionResult").unwrap(), confirmationRequiredWithNoteContentToConfirm : noteContentToConfirm)
    }
}
pub type INNoteContentType = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INNoteContentTypeResolutionResult(pub id);
impl std::ops::Deref for INNoteContentTypeResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INNoteContentTypeResolutionResult {}
impl INNoteContentTypeResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INNoteContentTypeResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INNoteContentTypeResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INNoteContentTypeResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INNoteContentTypeResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INNoteContentTypeResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INNoteContentTypeResolutionResult(parent.0))
        } else {
            Err ("This INIntentResolutionResult cannot be downcasted to INNoteContentTypeResolutionResult" ,)
        }
    }
}
impl INSObject for INNoteContentTypeResolutionResult {}
impl PNSObject for INNoteContentTypeResolutionResult {}
impl IINNoteContentTypeResolutionResult for INNoteContentTypeResolutionResult {}
pub trait IINNoteContentTypeResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedNoteContentType_(
        resolvedNoteContentType: INNoteContentType,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INNoteContentTypeResolutionResult").unwrap(), successWithResolvedNoteContentType : resolvedNoteContentType)
    }
    unsafe fn confirmationRequiredWithNoteContentTypeToConfirm_(
        noteContentTypeToConfirm: INNoteContentType,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INNoteContentTypeResolutionResult").unwrap(), confirmationRequiredWithNoteContentTypeToConfirm : noteContentTypeToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INNoteResolutionResult(pub id);
impl std::ops::Deref for INNoteResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INNoteResolutionResult {}
impl INNoteResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INNoteResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INNoteResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INNoteResolutionResult {
    type Error = &'static str;
    fn try_from(parent: INIntentResolutionResult) -> Result<INNoteResolutionResult, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INNoteResolutionResult").unwrap()) };
        if is_kind_of {
            Ok(INNoteResolutionResult(parent.0))
        } else {
            Err("This INIntentResolutionResult cannot be downcasted to INNoteResolutionResult")
        }
    }
}
impl INSObject for INNoteResolutionResult {}
impl PNSObject for INNoteResolutionResult {}
impl IINNoteResolutionResult for INNoteResolutionResult {}
pub trait IINNoteResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedNote_(resolvedNote: INNote) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INNoteResolutionResult").unwrap(), successWithResolvedNote : resolvedNote)
    }
    unsafe fn disambiguationWithNotesToDisambiguate_(notesToDisambiguate: NSArray) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INNoteResolutionResult").unwrap(), disambiguationWithNotesToDisambiguate : notesToDisambiguate)
    }
    unsafe fn confirmationRequiredWithNoteToConfirm_(noteToConfirm: INNote) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INNoteResolutionResult").unwrap(), confirmationRequiredWithNoteToConfirm : noteToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INNotebookItemTypeResolutionResult(pub id);
impl std::ops::Deref for INNotebookItemTypeResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INNotebookItemTypeResolutionResult {}
impl INNotebookItemTypeResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INNotebookItemTypeResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INNotebookItemTypeResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INNotebookItemTypeResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INNotebookItemTypeResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INNotebookItemTypeResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INNotebookItemTypeResolutionResult(parent.0))
        } else {
            Err ("This INIntentResolutionResult cannot be downcasted to INNotebookItemTypeResolutionResult" ,)
        }
    }
}
impl INSObject for INNotebookItemTypeResolutionResult {}
impl PNSObject for INNotebookItemTypeResolutionResult {}
impl IINNotebookItemTypeResolutionResult for INNotebookItemTypeResolutionResult {}
pub trait IINNotebookItemTypeResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedNotebookItemType_(
        resolvedNotebookItemType: INNotebookItemType,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INNotebookItemTypeResolutionResult").unwrap(), successWithResolvedNotebookItemType : resolvedNotebookItemType)
    }
    unsafe fn disambiguationWithNotebookItemTypesToDisambiguate_(
        notebookItemTypesToDisambiguate: NSArray,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INNotebookItemTypeResolutionResult").unwrap(), disambiguationWithNotebookItemTypesToDisambiguate : notebookItemTypesToDisambiguate)
    }
    unsafe fn confirmationRequiredWithNotebookItemTypeToConfirm_(
        notebookItemTypeToConfirm: INNotebookItemType,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INNotebookItemTypeResolutionResult").unwrap(), confirmationRequiredWithNotebookItemTypeToConfirm : notebookItemTypeToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INOutgoingMessageTypeResolutionResult(pub id);
impl std::ops::Deref for INOutgoingMessageTypeResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INOutgoingMessageTypeResolutionResult {}
impl INOutgoingMessageTypeResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INOutgoingMessageTypeResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INOutgoingMessageTypeResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INOutgoingMessageTypeResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INOutgoingMessageTypeResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INOutgoingMessageTypeResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INOutgoingMessageTypeResolutionResult(parent.0))
        } else {
            Err ("This INIntentResolutionResult cannot be downcasted to INOutgoingMessageTypeResolutionResult" ,)
        }
    }
}
impl INSObject for INOutgoingMessageTypeResolutionResult {}
impl PNSObject for INOutgoingMessageTypeResolutionResult {}
impl IINOutgoingMessageTypeResolutionResult for INOutgoingMessageTypeResolutionResult {}
pub trait IINOutgoingMessageTypeResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedOutgoingMessageType_(
        resolvedOutgoingMessageType: INOutgoingMessageType,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INOutgoingMessageTypeResolutionResult").unwrap(), successWithResolvedOutgoingMessageType : resolvedOutgoingMessageType)
    }
    unsafe fn confirmationRequiredWithOutgoingMessageTypeToConfirm_(
        outgoingMessageTypeToConfirm: INOutgoingMessageType,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INOutgoingMessageTypeResolutionResult").unwrap(), confirmationRequiredWithOutgoingMessageTypeToConfirm : outgoingMessageTypeToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INPaymentAccount(pub id);
impl std::ops::Deref for INPaymentAccount {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INPaymentAccount {}
impl INPaymentAccount {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INPaymentAccount").unwrap(), alloc) })
    }
}
impl PNSCopying for INPaymentAccount {}
impl PNSSecureCoding for INPaymentAccount {}
impl INSObject for INPaymentAccount {}
impl PNSObject for INPaymentAccount {}
impl std::convert::TryFrom<NSObject> for INPaymentAccount {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INPaymentAccount, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INPaymentAccount").unwrap()) };
        if is_kind_of {
            Ok(INPaymentAccount(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INPaymentAccount")
        }
    }
}
impl IINPaymentAccount for INPaymentAccount {}
pub trait IINPaymentAccount: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithNickname_number_accountType_organizationName_balance_secondaryBalance_(
        &self,
        nickname: INSpeakableString,
        number: NSString,
        accountType: INAccountType,
        organizationName: INSpeakableString,
        balance: INBalanceAmount,
        secondaryBalance: INBalanceAmount,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithNickname : nickname, number : number, accountType : accountType, organizationName : organizationName, balance : balance, secondaryBalance : secondaryBalance)
    }
    unsafe fn initWithNickname_number_accountType_organizationName_(
        &self,
        nickname: INSpeakableString,
        number: NSString,
        accountType: INAccountType,
        organizationName: INSpeakableString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithNickname : nickname, number : number, accountType : accountType, organizationName : organizationName)
    }
    unsafe fn nickname(&self) -> INSpeakableString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, nickname)
    }
    unsafe fn accountNumber(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accountNumber)
    }
    unsafe fn accountType(&self) -> INAccountType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accountType)
    }
    unsafe fn organizationName(&self) -> INSpeakableString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, organizationName)
    }
    unsafe fn balance(&self) -> INBalanceAmount
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, balance)
    }
    unsafe fn secondaryBalance(&self) -> INBalanceAmount
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, secondaryBalance)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INPaymentAccountResolutionResult(pub id);
impl std::ops::Deref for INPaymentAccountResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INPaymentAccountResolutionResult {}
impl INPaymentAccountResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INPaymentAccountResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INPaymentAccountResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INPaymentAccountResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INPaymentAccountResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INPaymentAccountResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INPaymentAccountResolutionResult(parent.0))
        } else {
            Err ("This INIntentResolutionResult cannot be downcasted to INPaymentAccountResolutionResult" ,)
        }
    }
}
impl INSObject for INPaymentAccountResolutionResult {}
impl PNSObject for INPaymentAccountResolutionResult {}
impl IINPaymentAccountResolutionResult for INPaymentAccountResolutionResult {}
pub trait IINPaymentAccountResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedPaymentAccount_(
        resolvedPaymentAccount: INPaymentAccount,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INPaymentAccountResolutionResult").unwrap(), successWithResolvedPaymentAccount : resolvedPaymentAccount)
    }
    unsafe fn disambiguationWithPaymentAccountsToDisambiguate_(
        paymentAccountsToDisambiguate: NSArray,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INPaymentAccountResolutionResult").unwrap(), disambiguationWithPaymentAccountsToDisambiguate : paymentAccountsToDisambiguate)
    }
    unsafe fn confirmationRequiredWithPaymentAccountToConfirm_(
        paymentAccountToConfirm: INPaymentAccount,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INPaymentAccountResolutionResult").unwrap(), confirmationRequiredWithPaymentAccountToConfirm : paymentAccountToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INPaymentAmount(pub id);
impl std::ops::Deref for INPaymentAmount {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INPaymentAmount {}
impl INPaymentAmount {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INPaymentAmount").unwrap(), alloc) })
    }
}
impl PNSCopying for INPaymentAmount {}
impl PNSSecureCoding for INPaymentAmount {}
impl INSObject for INPaymentAmount {}
impl PNSObject for INPaymentAmount {}
impl std::convert::TryFrom<NSObject> for INPaymentAmount {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INPaymentAmount, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INPaymentAmount").unwrap()) };
        if is_kind_of {
            Ok(INPaymentAmount(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INPaymentAmount")
        }
    }
}
impl IINPaymentAmount for INPaymentAmount {}
pub trait IINPaymentAmount: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithAmountType_amount_(
        &self,
        amountType: INAmountType,
        amount: INCurrencyAmount,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithAmountType : amountType, amount : amount)
    }
    unsafe fn amount(&self) -> INCurrencyAmount
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, amount)
    }
    unsafe fn amountType(&self) -> INAmountType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, amountType)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INPaymentAmountResolutionResult(pub id);
impl std::ops::Deref for INPaymentAmountResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INPaymentAmountResolutionResult {}
impl INPaymentAmountResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INPaymentAmountResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INPaymentAmountResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INPaymentAmountResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INPaymentAmountResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INPaymentAmountResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INPaymentAmountResolutionResult(parent.0))
        } else {
            Err ("This INIntentResolutionResult cannot be downcasted to INPaymentAmountResolutionResult" ,)
        }
    }
}
impl INSObject for INPaymentAmountResolutionResult {}
impl PNSObject for INPaymentAmountResolutionResult {}
impl IINPaymentAmountResolutionResult for INPaymentAmountResolutionResult {}
pub trait IINPaymentAmountResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedPaymentAmount_(
        resolvedPaymentAmount: INPaymentAmount,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INPaymentAmountResolutionResult").unwrap(), successWithResolvedPaymentAmount : resolvedPaymentAmount)
    }
    unsafe fn disambiguationWithPaymentAmountsToDisambiguate_(
        paymentAmountsToDisambiguate: NSArray,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INPaymentAmountResolutionResult").unwrap(), disambiguationWithPaymentAmountsToDisambiguate : paymentAmountsToDisambiguate)
    }
    unsafe fn confirmationRequiredWithPaymentAmountToConfirm_(
        paymentAmountToConfirm: INPaymentAmount,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INPaymentAmountResolutionResult").unwrap(), confirmationRequiredWithPaymentAmountToConfirm : paymentAmountToConfirm)
    }
}
pub type INPaymentMethodType = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INPaymentMethod(pub id);
impl std::ops::Deref for INPaymentMethod {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INPaymentMethod {}
impl INPaymentMethod {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INPaymentMethod").unwrap(), alloc) })
    }
}
impl PNSCopying for INPaymentMethod {}
impl PNSSecureCoding for INPaymentMethod {}
impl INSObject for INPaymentMethod {}
impl PNSObject for INPaymentMethod {}
impl std::convert::TryFrom<NSObject> for INPaymentMethod {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INPaymentMethod, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INPaymentMethod").unwrap()) };
        if is_kind_of {
            Ok(INPaymentMethod(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INPaymentMethod")
        }
    }
}
impl IINPaymentMethod for INPaymentMethod {}
pub trait IINPaymentMethod: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithType_name_identificationHint_icon_(
        &self,
        type_: INPaymentMethodType,
        name: NSString,
        identificationHint: NSString,
        icon: INImage,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithType : type_, name : name, identificationHint : identificationHint, icon : icon)
    }
    unsafe fn type_(&self) -> INPaymentMethodType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, type)
    }
    unsafe fn name(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, name)
    }
    unsafe fn icon(&self) -> INImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, icon)
    }
    unsafe fn identificationHint(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, identificationHint)
    }
    unsafe fn applePayPaymentMethod() -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INPaymentMethod").unwrap(), applePayPaymentMethod)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INPaymentMethodResolutionResult(pub id);
impl std::ops::Deref for INPaymentMethodResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INPaymentMethodResolutionResult {}
impl INPaymentMethodResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INPaymentMethodResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INPaymentMethodResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INPaymentMethodResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INPaymentMethodResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INPaymentMethodResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INPaymentMethodResolutionResult(parent.0))
        } else {
            Err ("This INIntentResolutionResult cannot be downcasted to INPaymentMethodResolutionResult" ,)
        }
    }
}
impl INSObject for INPaymentMethodResolutionResult {}
impl PNSObject for INPaymentMethodResolutionResult {}
impl IINPaymentMethodResolutionResult for INPaymentMethodResolutionResult {}
pub trait IINPaymentMethodResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedPaymentMethod_(
        resolvedPaymentMethod: INPaymentMethod,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INPaymentMethodResolutionResult").unwrap(), successWithResolvedPaymentMethod : resolvedPaymentMethod)
    }
    unsafe fn disambiguationWithPaymentMethodsToDisambiguate_(
        paymentMethodsToDisambiguate: NSArray,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INPaymentMethodResolutionResult").unwrap(), disambiguationWithPaymentMethodsToDisambiguate : paymentMethodsToDisambiguate)
    }
    unsafe fn confirmationRequiredWithPaymentMethodToConfirm_(
        paymentMethodToConfirm: INPaymentMethod,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INPaymentMethodResolutionResult").unwrap(), confirmationRequiredWithPaymentMethodToConfirm : paymentMethodToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INPaymentRecord(pub id);
impl std::ops::Deref for INPaymentRecord {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INPaymentRecord {}
impl INPaymentRecord {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INPaymentRecord").unwrap(), alloc) })
    }
}
impl PNSCopying for INPaymentRecord {}
impl PNSSecureCoding for INPaymentRecord {}
impl INSObject for INPaymentRecord {}
impl PNSObject for INPaymentRecord {}
impl std::convert::TryFrom<NSObject> for INPaymentRecord {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INPaymentRecord, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INPaymentRecord").unwrap()) };
        if is_kind_of {
            Ok(INPaymentRecord(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INPaymentRecord")
        }
    }
}
impl IINPaymentRecord for INPaymentRecord {}
pub trait IINPaymentRecord: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithPayee_payer_currencyAmount_paymentMethod_note_status_feeAmount_(
        &self,
        payee: INPerson,
        payer: INPerson,
        currencyAmount: INCurrencyAmount,
        paymentMethod: INPaymentMethod,
        note: NSString,
        status: INPaymentStatus,
        feeAmount: INCurrencyAmount,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithPayee : payee, payer : payer, currencyAmount : currencyAmount, paymentMethod : paymentMethod, note : note, status : status, feeAmount : feeAmount)
    }
    unsafe fn initWithPayee_payer_currencyAmount_paymentMethod_note_status_(
        &self,
        payee: INPerson,
        payer: INPerson,
        currencyAmount: INCurrencyAmount,
        paymentMethod: INPaymentMethod,
        note: NSString,
        status: INPaymentStatus,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithPayee : payee, payer : payer, currencyAmount : currencyAmount, paymentMethod : paymentMethod, note : note, status : status)
    }
    unsafe fn payee(&self) -> INPerson
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, payee)
    }
    unsafe fn payer(&self) -> INPerson
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, payer)
    }
    unsafe fn currencyAmount(&self) -> INCurrencyAmount
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, currencyAmount)
    }
    unsafe fn note(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, note)
    }
    unsafe fn status(&self) -> INPaymentStatus
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, status)
    }
    unsafe fn paymentMethod(&self) -> INPaymentMethod
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, paymentMethod)
    }
    unsafe fn feeAmount(&self) -> INCurrencyAmount
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, feeAmount)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INPaymentStatusResolutionResult(pub id);
impl std::ops::Deref for INPaymentStatusResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INPaymentStatusResolutionResult {}
impl INPaymentStatusResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INPaymentStatusResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INPaymentStatusResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INPaymentStatusResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INPaymentStatusResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INPaymentStatusResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INPaymentStatusResolutionResult(parent.0))
        } else {
            Err ("This INIntentResolutionResult cannot be downcasted to INPaymentStatusResolutionResult" ,)
        }
    }
}
impl INSObject for INPaymentStatusResolutionResult {}
impl PNSObject for INPaymentStatusResolutionResult {}
impl IINPaymentStatusResolutionResult for INPaymentStatusResolutionResult {}
pub trait IINPaymentStatusResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedPaymentStatus_(
        resolvedPaymentStatus: INPaymentStatus,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INPaymentStatusResolutionResult").unwrap(), successWithResolvedPaymentStatus : resolvedPaymentStatus)
    }
    unsafe fn successWithResolvedValue_(resolvedValue: INPaymentStatus) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INPaymentStatusResolutionResult").unwrap(), successWithResolvedValue : resolvedValue)
    }
    unsafe fn confirmationRequiredWithPaymentStatusToConfirm_(
        paymentStatusToConfirm: INPaymentStatus,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INPaymentStatusResolutionResult").unwrap(), confirmationRequiredWithPaymentStatusToConfirm : paymentStatusToConfirm)
    }
    unsafe fn confirmationRequiredWithValueToConfirm_(
        valueToConfirm: INPaymentStatus,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INPaymentStatusResolutionResult").unwrap(), confirmationRequiredWithValueToConfirm : valueToConfirm)
    }
}
pub type INPersonHandleLabel = NSString;
pub type INPersonRelationship = NSString;
pub type INPlayMediaMediaItemUnsupportedReason = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INPlayMediaMediaItemResolutionResult(pub id);
impl std::ops::Deref for INPlayMediaMediaItemResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INPlayMediaMediaItemResolutionResult {}
impl INPlayMediaMediaItemResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INPlayMediaMediaItemResolutionResult").unwrap(), alloc) })
    }
}
impl IINMediaItemResolutionResult for INPlayMediaMediaItemResolutionResult {}
impl std::convert::TryFrom<INMediaItemResolutionResult> for INPlayMediaMediaItemResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INMediaItemResolutionResult,
    ) -> Result<INPlayMediaMediaItemResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INPlayMediaMediaItemResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INPlayMediaMediaItemResolutionResult(parent.0))
        } else {
            Err ("This INMediaItemResolutionResult cannot be downcasted to INPlayMediaMediaItemResolutionResult" ,)
        }
    }
}
impl IINIntentResolutionResult for INPlayMediaMediaItemResolutionResult {}
impl INSObject for INPlayMediaMediaItemResolutionResult {}
impl PNSObject for INPlayMediaMediaItemResolutionResult {}
impl IINPlayMediaMediaItemResolutionResult for INPlayMediaMediaItemResolutionResult {}
pub trait IINPlayMediaMediaItemResolutionResult: Sized + std::ops::Deref {
    unsafe fn initWithMediaItemResolutionResult_(
        &self,
        mediaItemResolutionResult: INMediaItemResolutionResult,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithMediaItemResolutionResult : mediaItemResolutionResult)
    }
    unsafe fn successesWithResolvedMediaItems_(resolvedMediaItems: NSArray) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INPlayMediaMediaItemResolutionResult").unwrap(), successesWithResolvedMediaItems : resolvedMediaItems)
    }
    unsafe fn unsupportedForReason_(reason: INPlayMediaMediaItemUnsupportedReason) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INPlayMediaMediaItemResolutionResult").unwrap(), unsupportedForReason : reason)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INDoubleResolutionResult(pub id);
impl std::ops::Deref for INDoubleResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INDoubleResolutionResult {}
impl INDoubleResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INDoubleResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INDoubleResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INDoubleResolutionResult {
    type Error = &'static str;
    fn try_from(parent: INIntentResolutionResult) -> Result<INDoubleResolutionResult, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INDoubleResolutionResult").unwrap()) };
        if is_kind_of {
            Ok(INDoubleResolutionResult(parent.0))
        } else {
            Err("This INIntentResolutionResult cannot be downcasted to INDoubleResolutionResult")
        }
    }
}
impl INSObject for INDoubleResolutionResult {}
impl PNSObject for INDoubleResolutionResult {}
impl IINDoubleResolutionResult for INDoubleResolutionResult {}
pub trait IINDoubleResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedValue_(resolvedValue: f64) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INDoubleResolutionResult").unwrap(), successWithResolvedValue : resolvedValue)
    }
    unsafe fn confirmationRequiredWithValueToConfirm_(valueToConfirm: NSNumber) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INDoubleResolutionResult").unwrap(), confirmationRequiredWithValueToConfirm : valueToConfirm)
    }
}
pub type INPlayMediaPlaybackSpeedUnsupportedReason = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INPlayMediaPlaybackSpeedResolutionResult(pub id);
impl std::ops::Deref for INPlayMediaPlaybackSpeedResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INPlayMediaPlaybackSpeedResolutionResult {}
impl INPlayMediaPlaybackSpeedResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INPlayMediaPlaybackSpeedResolutionResult").unwrap(), alloc) })
    }
}
impl IINDoubleResolutionResult for INPlayMediaPlaybackSpeedResolutionResult {}
impl From<INPlayMediaPlaybackSpeedResolutionResult> for INDoubleResolutionResult {
    fn from(child: INPlayMediaPlaybackSpeedResolutionResult) -> INDoubleResolutionResult {
        INDoubleResolutionResult(child.0)
    }
}
impl std::convert::TryFrom<INDoubleResolutionResult> for INPlayMediaPlaybackSpeedResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INDoubleResolutionResult,
    ) -> Result<INPlayMediaPlaybackSpeedResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INPlayMediaPlaybackSpeedResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INPlayMediaPlaybackSpeedResolutionResult(parent.0))
        } else {
            Err ("This INDoubleResolutionResult cannot be downcasted to INPlayMediaPlaybackSpeedResolutionResult" ,)
        }
    }
}
impl IINIntentResolutionResult for INPlayMediaPlaybackSpeedResolutionResult {}
impl INSObject for INPlayMediaPlaybackSpeedResolutionResult {}
impl PNSObject for INPlayMediaPlaybackSpeedResolutionResult {}
impl IINPlayMediaPlaybackSpeedResolutionResult for INPlayMediaPlaybackSpeedResolutionResult {}
pub trait IINPlayMediaPlaybackSpeedResolutionResult: Sized + std::ops::Deref {
    unsafe fn initWithDoubleResolutionResult_(
        &self,
        doubleResolutionResult: INDoubleResolutionResult,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithDoubleResolutionResult : doubleResolutionResult)
    }
    unsafe fn unsupportedForReason_(
        reason: INPlayMediaPlaybackSpeedUnsupportedReason,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INPlayMediaPlaybackSpeedResolutionResult").unwrap(), unsupportedForReason : reason)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INPlaybackQueueLocationResolutionResult(pub id);
impl std::ops::Deref for INPlaybackQueueLocationResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INPlaybackQueueLocationResolutionResult {}
impl INPlaybackQueueLocationResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INPlaybackQueueLocationResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INPlaybackQueueLocationResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INPlaybackQueueLocationResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INPlaybackQueueLocationResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INPlaybackQueueLocationResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INPlaybackQueueLocationResolutionResult(parent.0))
        } else {
            Err ("This INIntentResolutionResult cannot be downcasted to INPlaybackQueueLocationResolutionResult" ,)
        }
    }
}
impl INSObject for INPlaybackQueueLocationResolutionResult {}
impl PNSObject for INPlaybackQueueLocationResolutionResult {}
impl IINPlaybackQueueLocationResolutionResult for INPlaybackQueueLocationResolutionResult {}
pub trait IINPlaybackQueueLocationResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedPlaybackQueueLocation_(
        resolvedPlaybackQueueLocation: INPlaybackQueueLocation,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INPlaybackQueueLocationResolutionResult").unwrap(), successWithResolvedPlaybackQueueLocation : resolvedPlaybackQueueLocation)
    }
    unsafe fn confirmationRequiredWithPlaybackQueueLocationToConfirm_(
        playbackQueueLocationToConfirm: INPlaybackQueueLocation,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INPlaybackQueueLocationResolutionResult").unwrap(), confirmationRequiredWithPlaybackQueueLocationToConfirm : playbackQueueLocationToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INPlaybackRepeatModeResolutionResult(pub id);
impl std::ops::Deref for INPlaybackRepeatModeResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INPlaybackRepeatModeResolutionResult {}
impl INPlaybackRepeatModeResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INPlaybackRepeatModeResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INPlaybackRepeatModeResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INPlaybackRepeatModeResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INPlaybackRepeatModeResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INPlaybackRepeatModeResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INPlaybackRepeatModeResolutionResult(parent.0))
        } else {
            Err ("This INIntentResolutionResult cannot be downcasted to INPlaybackRepeatModeResolutionResult" ,)
        }
    }
}
impl INSObject for INPlaybackRepeatModeResolutionResult {}
impl PNSObject for INPlaybackRepeatModeResolutionResult {}
impl IINPlaybackRepeatModeResolutionResult for INPlaybackRepeatModeResolutionResult {}
pub trait IINPlaybackRepeatModeResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedPlaybackRepeatMode_(
        resolvedPlaybackRepeatMode: INPlaybackRepeatMode,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INPlaybackRepeatModeResolutionResult").unwrap(), successWithResolvedPlaybackRepeatMode : resolvedPlaybackRepeatMode)
    }
    unsafe fn confirmationRequiredWithPlaybackRepeatModeToConfirm_(
        playbackRepeatModeToConfirm: INPlaybackRepeatMode,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INPlaybackRepeatModeResolutionResult").unwrap(), confirmationRequiredWithPlaybackRepeatModeToConfirm : playbackRepeatModeToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INRadioTypeResolutionResult(pub id);
impl std::ops::Deref for INRadioTypeResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INRadioTypeResolutionResult {}
impl INRadioTypeResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INRadioTypeResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INRadioTypeResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INRadioTypeResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INRadioTypeResolutionResult, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INRadioTypeResolutionResult").unwrap()) };
        if is_kind_of {
            Ok(INRadioTypeResolutionResult(parent.0))
        } else {
            Err("This INIntentResolutionResult cannot be downcasted to INRadioTypeResolutionResult")
        }
    }
}
impl INSObject for INRadioTypeResolutionResult {}
impl PNSObject for INRadioTypeResolutionResult {}
impl IINRadioTypeResolutionResult for INRadioTypeResolutionResult {}
pub trait IINRadioTypeResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedRadioType_(resolvedRadioType: INRadioType) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INRadioTypeResolutionResult").unwrap(), successWithResolvedRadioType : resolvedRadioType)
    }
    unsafe fn successWithResolvedValue_(resolvedValue: INRadioType) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INRadioTypeResolutionResult").unwrap(), successWithResolvedValue : resolvedValue)
    }
    unsafe fn confirmationRequiredWithRadioTypeToConfirm_(
        radioTypeToConfirm: INRadioType,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INRadioTypeResolutionResult").unwrap(), confirmationRequiredWithRadioTypeToConfirm : radioTypeToConfirm)
    }
    unsafe fn confirmationRequiredWithValueToConfirm_(valueToConfirm: INRadioType) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INRadioTypeResolutionResult").unwrap(), confirmationRequiredWithValueToConfirm : valueToConfirm)
    }
}
pub type INRecurrenceFrequency = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INRelativeReferenceResolutionResult(pub id);
impl std::ops::Deref for INRelativeReferenceResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INRelativeReferenceResolutionResult {}
impl INRelativeReferenceResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INRelativeReferenceResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INRelativeReferenceResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INRelativeReferenceResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INRelativeReferenceResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INRelativeReferenceResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INRelativeReferenceResolutionResult(parent.0))
        } else {
            Err ("This INIntentResolutionResult cannot be downcasted to INRelativeReferenceResolutionResult" ,)
        }
    }
}
impl INSObject for INRelativeReferenceResolutionResult {}
impl PNSObject for INRelativeReferenceResolutionResult {}
impl IINRelativeReferenceResolutionResult for INRelativeReferenceResolutionResult {}
pub trait IINRelativeReferenceResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedRelativeReference_(
        resolvedRelativeReference: INRelativeReference,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INRelativeReferenceResolutionResult").unwrap(), successWithResolvedRelativeReference : resolvedRelativeReference)
    }
    unsafe fn successWithResolvedValue_(resolvedValue: INRelativeReference) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INRelativeReferenceResolutionResult").unwrap(), successWithResolvedValue : resolvedValue)
    }
    unsafe fn confirmationRequiredWithRelativeReferenceToConfirm_(
        relativeReferenceToConfirm: INRelativeReference,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INRelativeReferenceResolutionResult").unwrap(), confirmationRequiredWithRelativeReferenceToConfirm : relativeReferenceToConfirm)
    }
    unsafe fn confirmationRequiredWithValueToConfirm_(
        valueToConfirm: INRelativeReference,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INRelativeReferenceResolutionResult").unwrap(), confirmationRequiredWithValueToConfirm : valueToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INRelativeSettingResolutionResult(pub id);
impl std::ops::Deref for INRelativeSettingResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INRelativeSettingResolutionResult {}
impl INRelativeSettingResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INRelativeSettingResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INRelativeSettingResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INRelativeSettingResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INRelativeSettingResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INRelativeSettingResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INRelativeSettingResolutionResult(parent.0))
        } else {
            Err ("This INIntentResolutionResult cannot be downcasted to INRelativeSettingResolutionResult" ,)
        }
    }
}
impl INSObject for INRelativeSettingResolutionResult {}
impl PNSObject for INRelativeSettingResolutionResult {}
impl IINRelativeSettingResolutionResult for INRelativeSettingResolutionResult {}
pub trait IINRelativeSettingResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedRelativeSetting_(
        resolvedRelativeSetting: INRelativeSetting,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INRelativeSettingResolutionResult").unwrap(), successWithResolvedRelativeSetting : resolvedRelativeSetting)
    }
    unsafe fn successWithResolvedValue_(resolvedValue: INRelativeSetting) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INRelativeSettingResolutionResult").unwrap(), successWithResolvedValue : resolvedValue)
    }
    unsafe fn confirmationRequiredWithRelativeSettingToConfirm_(
        relativeSettingToConfirm: INRelativeSetting,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INRelativeSettingResolutionResult").unwrap(), confirmationRequiredWithRelativeSettingToConfirm : relativeSettingToConfirm)
    }
    unsafe fn confirmationRequiredWithValueToConfirm_(
        valueToConfirm: INRelativeSetting,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INRelativeSettingResolutionResult").unwrap(), confirmationRequiredWithValueToConfirm : valueToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INRentalCar(pub id);
impl std::ops::Deref for INRentalCar {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INRentalCar {}
impl INRentalCar {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INRentalCar").unwrap(), alloc) })
    }
}
impl PNSCopying for INRentalCar {}
impl PNSSecureCoding for INRentalCar {}
impl INSObject for INRentalCar {}
impl PNSObject for INRentalCar {}
impl std::convert::TryFrom<NSObject> for INRentalCar {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INRentalCar, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INRentalCar").unwrap()) };
        if is_kind_of {
            Ok(INRentalCar(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INRentalCar")
        }
    }
}
impl IINRentalCar for INRentalCar {}
pub trait IINRentalCar: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithRentalCompanyName_type_make_model_rentalCarDescription_(
        &self,
        rentalCompanyName: NSString,
        type_: NSString,
        make: NSString,
        model: NSString,
        rentalCarDescription: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithRentalCompanyName : rentalCompanyName, r#type : type_, make : make, model : model, rentalCarDescription : rentalCarDescription)
    }
    unsafe fn rentalCompanyName(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, rentalCompanyName)
    }
    unsafe fn type_(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, type)
    }
    unsafe fn make(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, make)
    }
    unsafe fn model(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, model)
    }
    unsafe fn rentalCarDescription(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, rentalCarDescription)
    }
}
pub type INRequestPaymentCurrencyAmountUnsupportedReason = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INRequestPaymentCurrencyAmountResolutionResult(pub id);
impl std::ops::Deref for INRequestPaymentCurrencyAmountResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INRequestPaymentCurrencyAmountResolutionResult {}
impl INRequestPaymentCurrencyAmountResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe {
            msg_send!(&*objc2::runtime::AnyClass::get(c"INRequestPaymentCurrencyAmountResolutionResult").unwrap(), alloc)
        })
    }
}
impl IINCurrencyAmountResolutionResult for INRequestPaymentCurrencyAmountResolutionResult {}
impl From<INRequestPaymentCurrencyAmountResolutionResult> for INCurrencyAmountResolutionResult {
    fn from(
        child: INRequestPaymentCurrencyAmountResolutionResult,
    ) -> INCurrencyAmountResolutionResult {
        INCurrencyAmountResolutionResult(child.0)
    }
}
impl std::convert::TryFrom<INCurrencyAmountResolutionResult>
    for INRequestPaymentCurrencyAmountResolutionResult
{
    type Error = &'static str;
    fn try_from(
        parent: INCurrencyAmountResolutionResult,
    ) -> Result<INRequestPaymentCurrencyAmountResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INRequestPaymentCurrencyAmountResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INRequestPaymentCurrencyAmountResolutionResult(parent.0))
        } else {
            Err ("This INCurrencyAmountResolutionResult cannot be downcasted to INRequestPaymentCurrencyAmountResolutionResult" ,)
        }
    }
}
impl IINIntentResolutionResult for INRequestPaymentCurrencyAmountResolutionResult {}
impl INSObject for INRequestPaymentCurrencyAmountResolutionResult {}
impl PNSObject for INRequestPaymentCurrencyAmountResolutionResult {}
impl IINRequestPaymentCurrencyAmountResolutionResult
    for INRequestPaymentCurrencyAmountResolutionResult
{
}
pub trait IINRequestPaymentCurrencyAmountResolutionResult: Sized + std::ops::Deref {
    unsafe fn initWithCurrencyAmountResolutionResult_(
        &self,
        currencyAmountResolutionResult: INCurrencyAmountResolutionResult,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCurrencyAmountResolutionResult : currencyAmountResolutionResult)
    }
    unsafe fn unsupportedForReason_(
        reason: INRequestPaymentCurrencyAmountUnsupportedReason,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INRequestPaymentCurrencyAmountResolutionResult").unwrap(), unsupportedForReason : reason)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INPersonResolutionResult(pub id);
impl std::ops::Deref for INPersonResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INPersonResolutionResult {}
impl INPersonResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INPersonResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INPersonResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INPersonResolutionResult {
    type Error = &'static str;
    fn try_from(parent: INIntentResolutionResult) -> Result<INPersonResolutionResult, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INPersonResolutionResult").unwrap()) };
        if is_kind_of {
            Ok(INPersonResolutionResult(parent.0))
        } else {
            Err("This INIntentResolutionResult cannot be downcasted to INPersonResolutionResult")
        }
    }
}
impl INSObject for INPersonResolutionResult {}
impl PNSObject for INPersonResolutionResult {}
impl IINPersonResolutionResult for INPersonResolutionResult {}
pub trait IINPersonResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedPerson_(resolvedPerson: INPerson) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INPersonResolutionResult").unwrap(), successWithResolvedPerson : resolvedPerson)
    }
    unsafe fn disambiguationWithPeopleToDisambiguate_(peopleToDisambiguate: NSArray) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INPersonResolutionResult").unwrap(), disambiguationWithPeopleToDisambiguate : peopleToDisambiguate)
    }
    unsafe fn confirmationRequiredWithPersonToConfirm_(personToConfirm: INPerson) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INPersonResolutionResult").unwrap(), confirmationRequiredWithPersonToConfirm : personToConfirm)
    }
}
pub type INRequestPaymentPayerUnsupportedReason = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INRequestPaymentPayerResolutionResult(pub id);
impl std::ops::Deref for INRequestPaymentPayerResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INRequestPaymentPayerResolutionResult {}
impl INRequestPaymentPayerResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INRequestPaymentPayerResolutionResult").unwrap(), alloc) })
    }
}
impl IINPersonResolutionResult for INRequestPaymentPayerResolutionResult {}
impl From<INRequestPaymentPayerResolutionResult> for INPersonResolutionResult {
    fn from(child: INRequestPaymentPayerResolutionResult) -> INPersonResolutionResult {
        INPersonResolutionResult(child.0)
    }
}
impl std::convert::TryFrom<INPersonResolutionResult> for INRequestPaymentPayerResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INPersonResolutionResult,
    ) -> Result<INRequestPaymentPayerResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INRequestPaymentPayerResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INRequestPaymentPayerResolutionResult(parent.0))
        } else {
            Err ("This INPersonResolutionResult cannot be downcasted to INRequestPaymentPayerResolutionResult" ,)
        }
    }
}
impl IINIntentResolutionResult for INRequestPaymentPayerResolutionResult {}
impl INSObject for INRequestPaymentPayerResolutionResult {}
impl PNSObject for INRequestPaymentPayerResolutionResult {}
impl IINRequestPaymentPayerResolutionResult for INRequestPaymentPayerResolutionResult {}
pub trait IINRequestPaymentPayerResolutionResult: Sized + std::ops::Deref {
    unsafe fn initWithPersonResolutionResult_(
        &self,
        personResolutionResult: INPersonResolutionResult,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithPersonResolutionResult : personResolutionResult)
    }
    unsafe fn unsupportedForReason_(reason: INRequestPaymentPayerUnsupportedReason) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INRequestPaymentPayerResolutionResult").unwrap(), unsupportedForReason : reason)
    }
}
pub type INReservationActionType = NSInteger;
pub type INReservationStatus = NSInteger;
pub type INRideFeedbackTypeOptions = NSUInteger;
pub type INRidePhase = NSInteger;
pub type INSearchForMediaMediaItemUnsupportedReason = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSearchForMediaMediaItemResolutionResult(pub id);
impl std::ops::Deref for INSearchForMediaMediaItemResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSearchForMediaMediaItemResolutionResult {}
impl INSearchForMediaMediaItemResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSearchForMediaMediaItemResolutionResult").unwrap(), alloc) })
    }
}
impl IINMediaItemResolutionResult for INSearchForMediaMediaItemResolutionResult {}
impl std::convert::TryFrom<INMediaItemResolutionResult>
    for INSearchForMediaMediaItemResolutionResult
{
    type Error = &'static str;
    fn try_from(
        parent: INMediaItemResolutionResult,
    ) -> Result<INSearchForMediaMediaItemResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSearchForMediaMediaItemResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INSearchForMediaMediaItemResolutionResult(parent.0))
        } else {
            Err ("This INMediaItemResolutionResult cannot be downcasted to INSearchForMediaMediaItemResolutionResult" ,)
        }
    }
}
impl IINIntentResolutionResult for INSearchForMediaMediaItemResolutionResult {}
impl INSObject for INSearchForMediaMediaItemResolutionResult {}
impl PNSObject for INSearchForMediaMediaItemResolutionResult {}
impl IINSearchForMediaMediaItemResolutionResult for INSearchForMediaMediaItemResolutionResult {}
pub trait IINSearchForMediaMediaItemResolutionResult: Sized + std::ops::Deref {
    unsafe fn initWithMediaItemResolutionResult_(
        &self,
        mediaItemResolutionResult: INMediaItemResolutionResult,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithMediaItemResolutionResult : mediaItemResolutionResult)
    }
    unsafe fn successesWithResolvedMediaItems_(resolvedMediaItems: NSArray) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INSearchForMediaMediaItemResolutionResult").unwrap(), successesWithResolvedMediaItems : resolvedMediaItems)
    }
    unsafe fn unsupportedForReason_(
        reason: INSearchForMediaMediaItemUnsupportedReason,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INSearchForMediaMediaItemResolutionResult").unwrap(), unsupportedForReason : reason)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSeat(pub id);
impl std::ops::Deref for INSeat {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSeat {}
impl INSeat {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSeat").unwrap(), alloc) })
    }
}
impl PNSCopying for INSeat {}
impl PNSSecureCoding for INSeat {}
impl INSObject for INSeat {}
impl PNSObject for INSeat {}
impl std::convert::TryFrom<NSObject> for INSeat {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INSeat, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSeat").unwrap()) };
        if is_kind_of {
            Ok(INSeat(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INSeat")
        }
    }
}
impl IINSeat for INSeat {}
pub trait IINSeat: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithSeatSection_seatRow_seatNumber_seatingType_(
        &self,
        seatSection: NSString,
        seatRow: NSString,
        seatNumber: NSString,
        seatingType: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithSeatSection : seatSection, seatRow : seatRow, seatNumber : seatNumber, seatingType : seatingType)
    }
    unsafe fn seatSection(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, seatSection)
    }
    unsafe fn seatRow(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, seatRow)
    }
    unsafe fn seatNumber(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, seatNumber)
    }
    unsafe fn seatingType(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, seatingType)
    }
}
pub type INSendMessageRecipientUnsupportedReason = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSendMessageRecipientResolutionResult(pub id);
impl std::ops::Deref for INSendMessageRecipientResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSendMessageRecipientResolutionResult {}
impl INSendMessageRecipientResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSendMessageRecipientResolutionResult").unwrap(), alloc) })
    }
}
impl IINPersonResolutionResult for INSendMessageRecipientResolutionResult {}
impl std::convert::TryFrom<INPersonResolutionResult> for INSendMessageRecipientResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INPersonResolutionResult,
    ) -> Result<INSendMessageRecipientResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSendMessageRecipientResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INSendMessageRecipientResolutionResult(parent.0))
        } else {
            Err ("This INPersonResolutionResult cannot be downcasted to INSendMessageRecipientResolutionResult" ,)
        }
    }
}
impl IINIntentResolutionResult for INSendMessageRecipientResolutionResult {}
impl INSObject for INSendMessageRecipientResolutionResult {}
impl PNSObject for INSendMessageRecipientResolutionResult {}
impl IINSendMessageRecipientResolutionResult for INSendMessageRecipientResolutionResult {}
pub trait IINSendMessageRecipientResolutionResult: Sized + std::ops::Deref {
    unsafe fn initWithPersonResolutionResult_(
        &self,
        personResolutionResult: INPersonResolutionResult,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithPersonResolutionResult : personResolutionResult)
    }
    unsafe fn unsupportedForReason_(reason: INSendMessageRecipientUnsupportedReason) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INSendMessageRecipientResolutionResult").unwrap(), unsupportedForReason : reason)
    }
}
pub type INSendPaymentCurrencyAmountUnsupportedReason = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSendPaymentCurrencyAmountResolutionResult(pub id);
impl std::ops::Deref for INSendPaymentCurrencyAmountResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSendPaymentCurrencyAmountResolutionResult {}
impl INSendPaymentCurrencyAmountResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSendPaymentCurrencyAmountResolutionResult").unwrap(), alloc) })
    }
}
impl IINCurrencyAmountResolutionResult for INSendPaymentCurrencyAmountResolutionResult {}
impl std::convert::TryFrom<INCurrencyAmountResolutionResult>
    for INSendPaymentCurrencyAmountResolutionResult
{
    type Error = &'static str;
    fn try_from(
        parent: INCurrencyAmountResolutionResult,
    ) -> Result<INSendPaymentCurrencyAmountResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSendPaymentCurrencyAmountResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INSendPaymentCurrencyAmountResolutionResult(parent.0))
        } else {
            Err ("This INCurrencyAmountResolutionResult cannot be downcasted to INSendPaymentCurrencyAmountResolutionResult" ,)
        }
    }
}
impl IINIntentResolutionResult for INSendPaymentCurrencyAmountResolutionResult {}
impl INSObject for INSendPaymentCurrencyAmountResolutionResult {}
impl PNSObject for INSendPaymentCurrencyAmountResolutionResult {}
impl IINSendPaymentCurrencyAmountResolutionResult for INSendPaymentCurrencyAmountResolutionResult {}
pub trait IINSendPaymentCurrencyAmountResolutionResult: Sized + std::ops::Deref {
    unsafe fn initWithCurrencyAmountResolutionResult_(
        &self,
        currencyAmountResolutionResult: INCurrencyAmountResolutionResult,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCurrencyAmountResolutionResult : currencyAmountResolutionResult)
    }
    unsafe fn unsupportedForReason_(
        reason: INSendPaymentCurrencyAmountUnsupportedReason,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INSendPaymentCurrencyAmountResolutionResult").unwrap(), unsupportedForReason : reason)
    }
}
pub type INSendPaymentPayeeUnsupportedReason = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSendPaymentPayeeResolutionResult(pub id);
impl std::ops::Deref for INSendPaymentPayeeResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSendPaymentPayeeResolutionResult {}
impl INSendPaymentPayeeResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSendPaymentPayeeResolutionResult").unwrap(), alloc) })
    }
}
impl IINPersonResolutionResult for INSendPaymentPayeeResolutionResult {}
impl std::convert::TryFrom<INPersonResolutionResult> for INSendPaymentPayeeResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INPersonResolutionResult,
    ) -> Result<INSendPaymentPayeeResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSendPaymentPayeeResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INSendPaymentPayeeResolutionResult(parent.0))
        } else {
            Err ("This INPersonResolutionResult cannot be downcasted to INSendPaymentPayeeResolutionResult" ,)
        }
    }
}
impl IINIntentResolutionResult for INSendPaymentPayeeResolutionResult {}
impl INSObject for INSendPaymentPayeeResolutionResult {}
impl PNSObject for INSendPaymentPayeeResolutionResult {}
impl IINSendPaymentPayeeResolutionResult for INSendPaymentPayeeResolutionResult {}
pub trait IINSendPaymentPayeeResolutionResult: Sized + std::ops::Deref {
    unsafe fn initWithPersonResolutionResult_(
        &self,
        personResolutionResult: INPersonResolutionResult,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithPersonResolutionResult : personResolutionResult)
    }
    unsafe fn unsupportedForReason_(reason: INSendPaymentPayeeUnsupportedReason) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INSendPaymentPayeeResolutionResult").unwrap(), unsupportedForReason : reason)
    }
}
pub type INSetTaskAttributeTemporalEventTriggerUnsupportedReason = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSetTaskAttributeTemporalEventTriggerResolutionResult(pub id);
impl std::ops::Deref for INSetTaskAttributeTemporalEventTriggerResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSetTaskAttributeTemporalEventTriggerResolutionResult {}
impl INSetTaskAttributeTemporalEventTriggerResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe {
            msg_send!(&*objc2::runtime::AnyClass::get(c"INSetTaskAttributeTemporalEventTriggerResolutionResult").unwrap(), alloc)
        })
    }
}
impl IINTemporalEventTriggerResolutionResult
    for INSetTaskAttributeTemporalEventTriggerResolutionResult
{
}
impl std::convert::TryFrom<INTemporalEventTriggerResolutionResult>
    for INSetTaskAttributeTemporalEventTriggerResolutionResult
{
    type Error = &'static str;
    fn try_from(
        parent: INTemporalEventTriggerResolutionResult,
    ) -> Result<INSetTaskAttributeTemporalEventTriggerResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSetTaskAttributeTemporalEventTriggerResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INSetTaskAttributeTemporalEventTriggerResolutionResult(
                parent.0,
            ))
        } else {
            Err ("This INTemporalEventTriggerResolutionResult cannot be downcasted to INSetTaskAttributeTemporalEventTriggerResolutionResult" ,)
        }
    }
}
impl IINIntentResolutionResult for INSetTaskAttributeTemporalEventTriggerResolutionResult {}
impl INSObject for INSetTaskAttributeTemporalEventTriggerResolutionResult {}
impl PNSObject for INSetTaskAttributeTemporalEventTriggerResolutionResult {}
impl IINSetTaskAttributeTemporalEventTriggerResolutionResult
    for INSetTaskAttributeTemporalEventTriggerResolutionResult
{
}
pub trait IINSetTaskAttributeTemporalEventTriggerResolutionResult: Sized + std::ops::Deref {
    unsafe fn initWithTemporalEventTriggerResolutionResult_(
        &self,
        temporalEventTriggerResolutionResult: INTemporalEventTriggerResolutionResult,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithTemporalEventTriggerResolutionResult : temporalEventTriggerResolutionResult)
    }
    unsafe fn unsupportedForReason_(
        reason: INSetTaskAttributeTemporalEventTriggerUnsupportedReason,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INSetTaskAttributeTemporalEventTriggerResolutionResult").unwrap(), unsupportedForReason : reason)
    }
}
pub type INSnoozeTasksTaskUnsupportedReason = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSnoozeTasksTaskResolutionResult(pub id);
impl std::ops::Deref for INSnoozeTasksTaskResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSnoozeTasksTaskResolutionResult {}
impl INSnoozeTasksTaskResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSnoozeTasksTaskResolutionResult").unwrap(), alloc) })
    }
}
impl IINTaskResolutionResult for INSnoozeTasksTaskResolutionResult {}
impl std::convert::TryFrom<INTaskResolutionResult> for INSnoozeTasksTaskResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INTaskResolutionResult,
    ) -> Result<INSnoozeTasksTaskResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSnoozeTasksTaskResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INSnoozeTasksTaskResolutionResult(parent.0))
        } else {
            Err ("This INTaskResolutionResult cannot be downcasted to INSnoozeTasksTaskResolutionResult" ,)
        }
    }
}
impl IINIntentResolutionResult for INSnoozeTasksTaskResolutionResult {}
impl INSObject for INSnoozeTasksTaskResolutionResult {}
impl PNSObject for INSnoozeTasksTaskResolutionResult {}
impl IINSnoozeTasksTaskResolutionResult for INSnoozeTasksTaskResolutionResult {}
pub trait IINSnoozeTasksTaskResolutionResult: Sized + std::ops::Deref {
    unsafe fn initWithTaskResolutionResult_(
        &self,
        taskResolutionResult: INTaskResolutionResult,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithTaskResolutionResult : taskResolutionResult)
    }
    unsafe fn unsupportedForReason_(reason: INSnoozeTasksTaskUnsupportedReason) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INSnoozeTasksTaskResolutionResult").unwrap(), unsupportedForReason : reason)
    }
}
pub type INSpatialEvent = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSpatialEventTrigger(pub id);
impl std::ops::Deref for INSpatialEventTrigger {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSpatialEventTrigger {}
impl INSpatialEventTrigger {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSpatialEventTrigger").unwrap(), alloc) })
    }
}
impl PNSCopying for INSpatialEventTrigger {}
impl PNSSecureCoding for INSpatialEventTrigger {}
impl INSObject for INSpatialEventTrigger {}
impl PNSObject for INSpatialEventTrigger {}
impl std::convert::TryFrom<NSObject> for INSpatialEventTrigger {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INSpatialEventTrigger, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSpatialEventTrigger").unwrap()) };
        if is_kind_of {
            Ok(INSpatialEventTrigger(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INSpatialEventTrigger")
        }
    }
}
impl IINSpatialEventTrigger for INSpatialEventTrigger {}
pub trait IINSpatialEventTrigger: Sized + std::ops::Deref {
    unsafe fn initWithPlacemark_event_(
        &self,
        placemark: CLPlacemark,
        event: INSpatialEvent,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithPlacemark : placemark, event : event)
    }
    unsafe fn placemark(&self) -> CLPlacemark
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, placemark)
    }
    unsafe fn event(&self) -> INSpatialEvent
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, event)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSpatialEventTriggerResolutionResult(pub id);
impl std::ops::Deref for INSpatialEventTriggerResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSpatialEventTriggerResolutionResult {}
impl INSpatialEventTriggerResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSpatialEventTriggerResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INSpatialEventTriggerResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INSpatialEventTriggerResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INSpatialEventTriggerResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSpatialEventTriggerResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INSpatialEventTriggerResolutionResult(parent.0))
        } else {
            Err ("This INIntentResolutionResult cannot be downcasted to INSpatialEventTriggerResolutionResult" ,)
        }
    }
}
impl INSObject for INSpatialEventTriggerResolutionResult {}
impl PNSObject for INSpatialEventTriggerResolutionResult {}
impl IINSpatialEventTriggerResolutionResult for INSpatialEventTriggerResolutionResult {}
pub trait IINSpatialEventTriggerResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedSpatialEventTrigger_(
        resolvedSpatialEventTrigger: INSpatialEventTrigger,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INSpatialEventTriggerResolutionResult").unwrap(), successWithResolvedSpatialEventTrigger : resolvedSpatialEventTrigger)
    }
    unsafe fn disambiguationWithSpatialEventTriggersToDisambiguate_(
        spatialEventTriggersToDisambiguate: NSArray,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INSpatialEventTriggerResolutionResult").unwrap(), disambiguationWithSpatialEventTriggersToDisambiguate : spatialEventTriggersToDisambiguate)
    }
    unsafe fn confirmationRequiredWithSpatialEventTriggerToConfirm_(
        spatialEventTriggerToConfirm: INSpatialEventTrigger,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INSpatialEventTriggerResolutionResult").unwrap(), confirmationRequiredWithSpatialEventTriggerToConfirm : spatialEventTriggerToConfirm)
    }
}
pub type INStartCallCallCapabilityUnsupportedReason = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INStartCallCallCapabilityResolutionResult(pub id);
impl std::ops::Deref for INStartCallCallCapabilityResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INStartCallCallCapabilityResolutionResult {}
impl INStartCallCallCapabilityResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INStartCallCallCapabilityResolutionResult").unwrap(), alloc) })
    }
}
impl IINCallCapabilityResolutionResult for INStartCallCallCapabilityResolutionResult {}
impl From<INStartCallCallCapabilityResolutionResult> for INCallCapabilityResolutionResult {
    fn from(child: INStartCallCallCapabilityResolutionResult) -> INCallCapabilityResolutionResult {
        INCallCapabilityResolutionResult(child.0)
    }
}
impl std::convert::TryFrom<INCallCapabilityResolutionResult>
    for INStartCallCallCapabilityResolutionResult
{
    type Error = &'static str;
    fn try_from(
        parent: INCallCapabilityResolutionResult,
    ) -> Result<INStartCallCallCapabilityResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INStartCallCallCapabilityResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INStartCallCallCapabilityResolutionResult(parent.0))
        } else {
            Err ("This INCallCapabilityResolutionResult cannot be downcasted to INStartCallCallCapabilityResolutionResult" ,)
        }
    }
}
impl IINIntentResolutionResult for INStartCallCallCapabilityResolutionResult {}
impl INSObject for INStartCallCallCapabilityResolutionResult {}
impl PNSObject for INStartCallCallCapabilityResolutionResult {}
impl IINStartCallCallCapabilityResolutionResult for INStartCallCallCapabilityResolutionResult {}
pub trait IINStartCallCallCapabilityResolutionResult: Sized + std::ops::Deref {
    unsafe fn initWithCallCapabilityResolutionResult_(
        &self,
        callCapabilityResolutionResult: INCallCapabilityResolutionResult,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCallCapabilityResolutionResult : callCapabilityResolutionResult)
    }
    unsafe fn unsupportedForReason_(
        reason: INStartCallCallCapabilityUnsupportedReason,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INStartCallCallCapabilityResolutionResult").unwrap(), unsupportedForReason : reason)
    }
}
pub type INStartCallCallRecordToCallBackUnsupportedReason = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INStartCallCallRecordToCallBackResolutionResult(pub id);
impl std::ops::Deref for INStartCallCallRecordToCallBackResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INStartCallCallRecordToCallBackResolutionResult {}
impl INStartCallCallRecordToCallBackResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe {
            msg_send!(&*objc2::runtime::AnyClass::get(c"INStartCallCallRecordToCallBackResolutionResult").unwrap(), alloc)
        })
    }
}
impl IINCallRecordResolutionResult for INStartCallCallRecordToCallBackResolutionResult {}
impl From<INStartCallCallRecordToCallBackResolutionResult> for INCallRecordResolutionResult {
    fn from(
        child: INStartCallCallRecordToCallBackResolutionResult,
    ) -> INCallRecordResolutionResult {
        INCallRecordResolutionResult(child.0)
    }
}
impl std::convert::TryFrom<INCallRecordResolutionResult>
    for INStartCallCallRecordToCallBackResolutionResult
{
    type Error = &'static str;
    fn try_from(
        parent: INCallRecordResolutionResult,
    ) -> Result<INStartCallCallRecordToCallBackResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INStartCallCallRecordToCallBackResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INStartCallCallRecordToCallBackResolutionResult(parent.0))
        } else {
            Err ("This INCallRecordResolutionResult cannot be downcasted to INStartCallCallRecordToCallBackResolutionResult" ,)
        }
    }
}
impl IINIntentResolutionResult for INStartCallCallRecordToCallBackResolutionResult {}
impl INSObject for INStartCallCallRecordToCallBackResolutionResult {}
impl PNSObject for INStartCallCallRecordToCallBackResolutionResult {}
impl IINStartCallCallRecordToCallBackResolutionResult
    for INStartCallCallRecordToCallBackResolutionResult
{
}
pub trait IINStartCallCallRecordToCallBackResolutionResult: Sized + std::ops::Deref {
    unsafe fn initWithCallRecordResolutionResult_(
        &self,
        callRecordResolutionResult: INCallRecordResolutionResult,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCallRecordResolutionResult : callRecordResolutionResult)
    }
    unsafe fn unsupportedForReason_(
        reason: INStartCallCallRecordToCallBackUnsupportedReason,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INStartCallCallRecordToCallBackResolutionResult").unwrap(), unsupportedForReason : reason)
    }
}
pub type INStartCallContactUnsupportedReason = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INStartCallContactResolutionResult(pub id);
impl std::ops::Deref for INStartCallContactResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INStartCallContactResolutionResult {}
impl INStartCallContactResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INStartCallContactResolutionResult").unwrap(), alloc) })
    }
}
impl IINPersonResolutionResult for INStartCallContactResolutionResult {}
impl std::convert::TryFrom<INPersonResolutionResult> for INStartCallContactResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INPersonResolutionResult,
    ) -> Result<INStartCallContactResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INStartCallContactResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INStartCallContactResolutionResult(parent.0))
        } else {
            Err ("This INPersonResolutionResult cannot be downcasted to INStartCallContactResolutionResult" ,)
        }
    }
}
impl IINIntentResolutionResult for INStartCallContactResolutionResult {}
impl INSObject for INStartCallContactResolutionResult {}
impl PNSObject for INStartCallContactResolutionResult {}
impl IINStartCallContactResolutionResult for INStartCallContactResolutionResult {}
pub trait IINStartCallContactResolutionResult: Sized + std::ops::Deref {
    unsafe fn initWithPersonResolutionResult_(
        &self,
        personResolutionResult: INPersonResolutionResult,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithPersonResolutionResult : personResolutionResult)
    }
    unsafe fn unsupportedForReason_(reason: INStartCallContactUnsupportedReason) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INStartCallContactResolutionResult").unwrap(), unsupportedForReason : reason)
    }
}
pub type INStickerType = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSticker(pub id);
impl std::ops::Deref for INSticker {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSticker {}
impl INSticker {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSticker").unwrap(), alloc) })
    }
}
impl PNSCopying for INSticker {}
impl PNSSecureCoding for INSticker {}
impl INSObject for INSticker {}
impl PNSObject for INSticker {}
impl std::convert::TryFrom<NSObject> for INSticker {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INSticker, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSticker").unwrap()) };
        if is_kind_of {
            Ok(INSticker(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INSticker")
        }
    }
}
impl IINSticker for INSticker {}
pub trait IINSticker: Sized + std::ops::Deref {
    unsafe fn initWithType_emoji_(&self, type_: INStickerType, emoji: NSString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithType : type_, emoji : emoji)
    }
    unsafe fn type_(&self) -> INStickerType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, type)
    }
    unsafe fn emoji(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, emoji)
    }
}
pub type INTaskType = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INTask(pub id);
impl std::ops::Deref for INTask {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INTask {}
impl INTask {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INTask").unwrap(), alloc) })
    }
}
impl PNSCopying for INTask {}
impl PNSSecureCoding for INTask {}
impl INSObject for INTask {}
impl PNSObject for INTask {}
impl std::convert::TryFrom<NSObject> for INTask {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INTask, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INTask").unwrap()) };
        if is_kind_of {
            Ok(INTask(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INTask")
        }
    }
}
impl IINTask for INTask {}
pub trait IINTask: Sized + std::ops::Deref {
    unsafe fn initWithTitle_status_taskType_spatialEventTrigger_temporalEventTrigger_createdDateComponents_modifiedDateComponents_identifier_priority_(
        &self,
        title: INSpeakableString,
        status: INTaskStatus,
        taskType: INTaskType,
        spatialEventTrigger: INSpatialEventTrigger,
        temporalEventTrigger: INTemporalEventTrigger,
        createdDateComponents: NSDateComponents,
        modifiedDateComponents: NSDateComponents,
        identifier: NSString,
        priority: INTaskPriority,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithTitle : title, status : status, taskType : taskType, spatialEventTrigger : spatialEventTrigger, temporalEventTrigger : temporalEventTrigger, createdDateComponents : createdDateComponents, modifiedDateComponents : modifiedDateComponents, identifier : identifier, priority : priority)
    }
    unsafe fn initWithTitle_status_taskType_spatialEventTrigger_temporalEventTrigger_createdDateComponents_modifiedDateComponents_identifier_(
        &self,
        title: INSpeakableString,
        status: INTaskStatus,
        taskType: INTaskType,
        spatialEventTrigger: INSpatialEventTrigger,
        temporalEventTrigger: INTemporalEventTrigger,
        createdDateComponents: NSDateComponents,
        modifiedDateComponents: NSDateComponents,
        identifier: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithTitle : title, status : status, taskType : taskType, spatialEventTrigger : spatialEventTrigger, temporalEventTrigger : temporalEventTrigger, createdDateComponents : createdDateComponents, modifiedDateComponents : modifiedDateComponents, identifier : identifier)
    }
    unsafe fn title(&self) -> INSpeakableString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, title)
    }
    unsafe fn status(&self) -> INTaskStatus
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, status)
    }
    unsafe fn spatialEventTrigger(&self) -> INSpatialEventTrigger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, spatialEventTrigger)
    }
    unsafe fn temporalEventTrigger(&self) -> INTemporalEventTrigger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, temporalEventTrigger)
    }
    unsafe fn createdDateComponents(&self) -> NSDateComponents
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, createdDateComponents)
    }
    unsafe fn modifiedDateComponents(&self) -> NSDateComponents
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, modifiedDateComponents)
    }
    unsafe fn identifier(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, identifier)
    }
    unsafe fn taskType(&self) -> INTaskType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, taskType)
    }
    unsafe fn priority(&self) -> INTaskPriority
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, priority)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INTaskList(pub id);
impl std::ops::Deref for INTaskList {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INTaskList {}
impl INTaskList {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INTaskList").unwrap(), alloc) })
    }
}
impl PNSCopying for INTaskList {}
impl PNSSecureCoding for INTaskList {}
impl INSObject for INTaskList {}
impl PNSObject for INTaskList {}
impl std::convert::TryFrom<NSObject> for INTaskList {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INTaskList, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INTaskList").unwrap()) };
        if is_kind_of {
            Ok(INTaskList(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INTaskList")
        }
    }
}
impl IINTaskList for INTaskList {}
pub trait IINTaskList: Sized + std::ops::Deref {
    unsafe fn initWithTitle_tasks_groupName_createdDateComponents_modifiedDateComponents_identifier_(
        &self,
        title: INSpeakableString,
        tasks: NSArray,
        groupName: INSpeakableString,
        createdDateComponents: NSDateComponents,
        modifiedDateComponents: NSDateComponents,
        identifier: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithTitle : title, tasks : tasks, groupName : groupName, createdDateComponents : createdDateComponents, modifiedDateComponents : modifiedDateComponents, identifier : identifier)
    }
    unsafe fn title(&self) -> INSpeakableString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, title)
    }
    unsafe fn tasks(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tasks)
    }
    unsafe fn groupName(&self) -> INSpeakableString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, groupName)
    }
    unsafe fn createdDateComponents(&self) -> NSDateComponents
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, createdDateComponents)
    }
    unsafe fn modifiedDateComponents(&self) -> NSDateComponents
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, modifiedDateComponents)
    }
    unsafe fn identifier(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, identifier)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INTaskPriorityResolutionResult(pub id);
impl std::ops::Deref for INTaskPriorityResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INTaskPriorityResolutionResult {}
impl INTaskPriorityResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INTaskPriorityResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INTaskPriorityResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INTaskPriorityResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INTaskPriorityResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INTaskPriorityResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INTaskPriorityResolutionResult(parent.0))
        } else {
            Err ("This INIntentResolutionResult cannot be downcasted to INTaskPriorityResolutionResult" ,)
        }
    }
}
impl INSObject for INTaskPriorityResolutionResult {}
impl PNSObject for INTaskPriorityResolutionResult {}
impl IINTaskPriorityResolutionResult for INTaskPriorityResolutionResult {}
pub trait IINTaskPriorityResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedTaskPriority_(resolvedTaskPriority: INTaskPriority) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INTaskPriorityResolutionResult").unwrap(), successWithResolvedTaskPriority : resolvedTaskPriority)
    }
    unsafe fn confirmationRequiredWithTaskPriorityToConfirm_(
        taskPriorityToConfirm: INTaskPriority,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INTaskPriorityResolutionResult").unwrap(), confirmationRequiredWithTaskPriorityToConfirm : taskPriorityToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INTaskStatusResolutionResult(pub id);
impl std::ops::Deref for INTaskStatusResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INTaskStatusResolutionResult {}
impl INTaskStatusResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INTaskStatusResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INTaskStatusResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INTaskStatusResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INTaskStatusResolutionResult, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INTaskStatusResolutionResult").unwrap()) };
        if is_kind_of {
            Ok(INTaskStatusResolutionResult(parent.0))
        } else {
            Err ("This INIntentResolutionResult cannot be downcasted to INTaskStatusResolutionResult" ,)
        }
    }
}
impl INSObject for INTaskStatusResolutionResult {}
impl PNSObject for INTaskStatusResolutionResult {}
impl IINTaskStatusResolutionResult for INTaskStatusResolutionResult {}
pub trait IINTaskStatusResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedTaskStatus_(resolvedTaskStatus: INTaskStatus) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INTaskStatusResolutionResult").unwrap(), successWithResolvedTaskStatus : resolvedTaskStatus)
    }
    unsafe fn confirmationRequiredWithTaskStatusToConfirm_(
        taskStatusToConfirm: INTaskStatus,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INTaskStatusResolutionResult").unwrap(), confirmationRequiredWithTaskStatusToConfirm : taskStatusToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INTemporalEventTrigger(pub id);
impl std::ops::Deref for INTemporalEventTrigger {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INTemporalEventTrigger {}
impl INTemporalEventTrigger {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INTemporalEventTrigger").unwrap(), alloc) })
    }
}
impl PNSCopying for INTemporalEventTrigger {}
impl PNSSecureCoding for INTemporalEventTrigger {}
impl INSObject for INTemporalEventTrigger {}
impl PNSObject for INTemporalEventTrigger {}
impl std::convert::TryFrom<NSObject> for INTemporalEventTrigger {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INTemporalEventTrigger, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INTemporalEventTrigger").unwrap()) };
        if is_kind_of {
            Ok(INTemporalEventTrigger(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INTemporalEventTrigger")
        }
    }
}
impl IINTemporalEventTrigger for INTemporalEventTrigger {}
pub trait IINTemporalEventTrigger: Sized + std::ops::Deref {
    unsafe fn initWithDateComponentsRange_(
        &self,
        dateComponentsRange: INDateComponentsRange,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithDateComponentsRange : dateComponentsRange)
    }
    unsafe fn dateComponentsRange(&self) -> INDateComponentsRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, dateComponentsRange)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INTemporalEventTriggerTypeOptionsResolutionResult(pub id);
impl std::ops::Deref for INTemporalEventTriggerTypeOptionsResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INTemporalEventTriggerTypeOptionsResolutionResult {}
impl INTemporalEventTriggerTypeOptionsResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe {
            msg_send!(&*objc2::runtime::AnyClass::get(c"INTemporalEventTriggerTypeOptionsResolutionResult").unwrap(), alloc)
        })
    }
}
impl IINIntentResolutionResult for INTemporalEventTriggerTypeOptionsResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult>
    for INTemporalEventTriggerTypeOptionsResolutionResult
{
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INTemporalEventTriggerTypeOptionsResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INTemporalEventTriggerTypeOptionsResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INTemporalEventTriggerTypeOptionsResolutionResult(parent.0))
        } else {
            Err ("This INIntentResolutionResult cannot be downcasted to INTemporalEventTriggerTypeOptionsResolutionResult" ,)
        }
    }
}
impl INSObject for INTemporalEventTriggerTypeOptionsResolutionResult {}
impl PNSObject for INTemporalEventTriggerTypeOptionsResolutionResult {}
impl IINTemporalEventTriggerTypeOptionsResolutionResult
    for INTemporalEventTriggerTypeOptionsResolutionResult
{
}
pub trait IINTemporalEventTriggerTypeOptionsResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedTemporalEventTriggerTypeOptions_(
        resolvedTemporalEventTriggerTypeOptions: INTemporalEventTriggerTypeOptions,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INTemporalEventTriggerTypeOptionsResolutionResult").unwrap(), successWithResolvedTemporalEventTriggerTypeOptions : resolvedTemporalEventTriggerTypeOptions)
    }
    unsafe fn confirmationRequiredWithTemporalEventTriggerTypeOptionsToConfirm_(
        temporalEventTriggerTypeOptionsToConfirm: INTemporalEventTriggerTypeOptions,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INTemporalEventTriggerTypeOptionsResolutionResult").unwrap(), confirmationRequiredWithTemporalEventTriggerTypeOptionsToConfirm : temporalEventTriggerTypeOptionsToConfirm)
    }
}
pub type INTicketedEventCategory = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INTicketedEvent(pub id);
impl std::ops::Deref for INTicketedEvent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INTicketedEvent {}
impl INTicketedEvent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INTicketedEvent").unwrap(), alloc) })
    }
}
impl PNSCopying for INTicketedEvent {}
impl PNSSecureCoding for INTicketedEvent {}
impl INSObject for INTicketedEvent {}
impl PNSObject for INTicketedEvent {}
impl std::convert::TryFrom<NSObject> for INTicketedEvent {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INTicketedEvent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INTicketedEvent").unwrap()) };
        if is_kind_of {
            Ok(INTicketedEvent(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INTicketedEvent")
        }
    }
}
impl IINTicketedEvent for INTicketedEvent {}
pub trait IINTicketedEvent: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCategory_name_eventDuration_location_(
        &self,
        category: INTicketedEventCategory,
        name: NSString,
        eventDuration: INDateComponentsRange,
        location: CLPlacemark,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCategory : category, name : name, eventDuration : eventDuration, location : location)
    }
    unsafe fn category(&self) -> INTicketedEventCategory
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, category)
    }
    unsafe fn name(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, name)
    }
    unsafe fn eventDuration(&self) -> INDateComponentsRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, eventDuration)
    }
    unsafe fn location(&self) -> CLPlacemark
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, location)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INTrainTrip(pub id);
impl std::ops::Deref for INTrainTrip {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INTrainTrip {}
impl INTrainTrip {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INTrainTrip").unwrap(), alloc) })
    }
}
impl PNSCopying for INTrainTrip {}
impl PNSSecureCoding for INTrainTrip {}
impl INSObject for INTrainTrip {}
impl PNSObject for INTrainTrip {}
impl std::convert::TryFrom<NSObject> for INTrainTrip {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INTrainTrip, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INTrainTrip").unwrap()) };
        if is_kind_of {
            Ok(INTrainTrip(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INTrainTrip")
        }
    }
}
impl IINTrainTrip for INTrainTrip {}
pub trait IINTrainTrip: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithProvider_trainName_trainNumber_tripDuration_departureStationLocation_departurePlatform_arrivalStationLocation_arrivalPlatform_(
        &self,
        provider: NSString,
        trainName: NSString,
        trainNumber: NSString,
        tripDuration: INDateComponentsRange,
        departureStationLocation: CLPlacemark,
        departurePlatform: NSString,
        arrivalStationLocation: CLPlacemark,
        arrivalPlatform: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithProvider : provider, trainName : trainName, trainNumber : trainNumber, tripDuration : tripDuration, departureStationLocation : departureStationLocation, departurePlatform : departurePlatform, arrivalStationLocation : arrivalStationLocation, arrivalPlatform : arrivalPlatform)
    }
    unsafe fn provider(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, provider)
    }
    unsafe fn trainName(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, trainName)
    }
    unsafe fn trainNumber(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, trainNumber)
    }
    unsafe fn tripDuration(&self) -> INDateComponentsRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tripDuration)
    }
    unsafe fn departureStationLocation(&self) -> CLPlacemark
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, departureStationLocation)
    }
    unsafe fn departurePlatform(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, departurePlatform)
    }
    unsafe fn arrivalStationLocation(&self) -> CLPlacemark
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, arrivalStationLocation)
    }
    unsafe fn arrivalPlatform(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, arrivalPlatform)
    }
}
pub type INUpdateMediaAffinityMediaItemUnsupportedReason = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INUpdateMediaAffinityMediaItemResolutionResult(pub id);
impl std::ops::Deref for INUpdateMediaAffinityMediaItemResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INUpdateMediaAffinityMediaItemResolutionResult {}
impl INUpdateMediaAffinityMediaItemResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe {
            msg_send!(&*objc2::runtime::AnyClass::get(c"INUpdateMediaAffinityMediaItemResolutionResult").unwrap(), alloc)
        })
    }
}
impl IINMediaItemResolutionResult for INUpdateMediaAffinityMediaItemResolutionResult {}
impl std::convert::TryFrom<INMediaItemResolutionResult>
    for INUpdateMediaAffinityMediaItemResolutionResult
{
    type Error = &'static str;
    fn try_from(
        parent: INMediaItemResolutionResult,
    ) -> Result<INUpdateMediaAffinityMediaItemResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INUpdateMediaAffinityMediaItemResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INUpdateMediaAffinityMediaItemResolutionResult(parent.0))
        } else {
            Err ("This INMediaItemResolutionResult cannot be downcasted to INUpdateMediaAffinityMediaItemResolutionResult" ,)
        }
    }
}
impl IINIntentResolutionResult for INUpdateMediaAffinityMediaItemResolutionResult {}
impl INSObject for INUpdateMediaAffinityMediaItemResolutionResult {}
impl PNSObject for INUpdateMediaAffinityMediaItemResolutionResult {}
impl IINUpdateMediaAffinityMediaItemResolutionResult
    for INUpdateMediaAffinityMediaItemResolutionResult
{
}
pub trait IINUpdateMediaAffinityMediaItemResolutionResult: Sized + std::ops::Deref {
    unsafe fn initWithMediaItemResolutionResult_(
        &self,
        mediaItemResolutionResult: INMediaItemResolutionResult,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithMediaItemResolutionResult : mediaItemResolutionResult)
    }
    unsafe fn successesWithResolvedMediaItems_(resolvedMediaItems: NSArray) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INUpdateMediaAffinityMediaItemResolutionResult").unwrap(), successesWithResolvedMediaItems : resolvedMediaItems)
    }
    unsafe fn unsupportedForReason_(
        reason: INUpdateMediaAffinityMediaItemUnsupportedReason,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INUpdateMediaAffinityMediaItemResolutionResult").unwrap(), unsupportedForReason : reason)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INVisualCodeTypeResolutionResult(pub id);
impl std::ops::Deref for INVisualCodeTypeResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INVisualCodeTypeResolutionResult {}
impl INVisualCodeTypeResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INVisualCodeTypeResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INVisualCodeTypeResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INVisualCodeTypeResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INVisualCodeTypeResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INVisualCodeTypeResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INVisualCodeTypeResolutionResult(parent.0))
        } else {
            Err ("This INIntentResolutionResult cannot be downcasted to INVisualCodeTypeResolutionResult" ,)
        }
    }
}
impl INSObject for INVisualCodeTypeResolutionResult {}
impl PNSObject for INVisualCodeTypeResolutionResult {}
impl IINVisualCodeTypeResolutionResult for INVisualCodeTypeResolutionResult {}
pub trait IINVisualCodeTypeResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedVisualCodeType_(
        resolvedVisualCodeType: INVisualCodeType,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INVisualCodeTypeResolutionResult").unwrap(), successWithResolvedVisualCodeType : resolvedVisualCodeType)
    }
    unsafe fn confirmationRequiredWithVisualCodeTypeToConfirm_(
        visualCodeTypeToConfirm: INVisualCodeType,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INVisualCodeTypeResolutionResult").unwrap(), confirmationRequiredWithVisualCodeTypeToConfirm : visualCodeTypeToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INWorkoutGoalUnitTypeResolutionResult(pub id);
impl std::ops::Deref for INWorkoutGoalUnitTypeResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INWorkoutGoalUnitTypeResolutionResult {}
impl INWorkoutGoalUnitTypeResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INWorkoutGoalUnitTypeResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INWorkoutGoalUnitTypeResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INWorkoutGoalUnitTypeResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INWorkoutGoalUnitTypeResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INWorkoutGoalUnitTypeResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INWorkoutGoalUnitTypeResolutionResult(parent.0))
        } else {
            Err ("This INIntentResolutionResult cannot be downcasted to INWorkoutGoalUnitTypeResolutionResult" ,)
        }
    }
}
impl INSObject for INWorkoutGoalUnitTypeResolutionResult {}
impl PNSObject for INWorkoutGoalUnitTypeResolutionResult {}
impl IINWorkoutGoalUnitTypeResolutionResult for INWorkoutGoalUnitTypeResolutionResult {}
pub trait IINWorkoutGoalUnitTypeResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedWorkoutGoalUnitType_(
        resolvedWorkoutGoalUnitType: INWorkoutGoalUnitType,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INWorkoutGoalUnitTypeResolutionResult").unwrap(), successWithResolvedWorkoutGoalUnitType : resolvedWorkoutGoalUnitType)
    }
    unsafe fn successWithResolvedValue_(resolvedValue: INWorkoutGoalUnitType) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INWorkoutGoalUnitTypeResolutionResult").unwrap(), successWithResolvedValue : resolvedValue)
    }
    unsafe fn confirmationRequiredWithWorkoutGoalUnitTypeToConfirm_(
        workoutGoalUnitTypeToConfirm: INWorkoutGoalUnitType,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INWorkoutGoalUnitTypeResolutionResult").unwrap(), confirmationRequiredWithWorkoutGoalUnitTypeToConfirm : workoutGoalUnitTypeToConfirm)
    }
    unsafe fn confirmationRequiredWithValueToConfirm_(
        valueToConfirm: INWorkoutGoalUnitType,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INWorkoutGoalUnitTypeResolutionResult").unwrap(), confirmationRequiredWithValueToConfirm : valueToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INWorkoutLocationTypeResolutionResult(pub id);
impl std::ops::Deref for INWorkoutLocationTypeResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INWorkoutLocationTypeResolutionResult {}
impl INWorkoutLocationTypeResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INWorkoutLocationTypeResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INWorkoutLocationTypeResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INWorkoutLocationTypeResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INWorkoutLocationTypeResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INWorkoutLocationTypeResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INWorkoutLocationTypeResolutionResult(parent.0))
        } else {
            Err ("This INIntentResolutionResult cannot be downcasted to INWorkoutLocationTypeResolutionResult" ,)
        }
    }
}
impl INSObject for INWorkoutLocationTypeResolutionResult {}
impl PNSObject for INWorkoutLocationTypeResolutionResult {}
impl IINWorkoutLocationTypeResolutionResult for INWorkoutLocationTypeResolutionResult {}
pub trait IINWorkoutLocationTypeResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedWorkoutLocationType_(
        resolvedWorkoutLocationType: INWorkoutLocationType,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INWorkoutLocationTypeResolutionResult").unwrap(), successWithResolvedWorkoutLocationType : resolvedWorkoutLocationType)
    }
    unsafe fn successWithResolvedValue_(resolvedValue: INWorkoutLocationType) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INWorkoutLocationTypeResolutionResult").unwrap(), successWithResolvedValue : resolvedValue)
    }
    unsafe fn confirmationRequiredWithWorkoutLocationTypeToConfirm_(
        workoutLocationTypeToConfirm: INWorkoutLocationType,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INWorkoutLocationTypeResolutionResult").unwrap(), confirmationRequiredWithWorkoutLocationTypeToConfirm : workoutLocationTypeToConfirm)
    }
    unsafe fn confirmationRequiredWithValueToConfirm_(
        valueToConfirm: INWorkoutLocationType,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INWorkoutLocationTypeResolutionResult").unwrap(), confirmationRequiredWithValueToConfirm : valueToConfirm)
    }
}
pub type INWorkoutNameIdentifier = NSString;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INIntentDonationMetadata(pub id);
impl std::ops::Deref for INIntentDonationMetadata {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INIntentDonationMetadata {}
impl INIntentDonationMetadata {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INIntentDonationMetadata").unwrap(), alloc) })
    }
}
impl PNSCopying for INIntentDonationMetadata {}
impl PNSSecureCoding for INIntentDonationMetadata {}
impl INSObject for INIntentDonationMetadata {}
impl PNSObject for INIntentDonationMetadata {}
impl std::convert::TryFrom<NSObject> for INIntentDonationMetadata {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INIntentDonationMetadata, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INIntentDonationMetadata").unwrap()) };
        if is_kind_of {
            Ok(INIntentDonationMetadata(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INIntentDonationMetadata")
        }
    }
}
impl IINIntentDonationMetadata for INIntentDonationMetadata {}
pub trait IINIntentDonationMetadata: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSendMessageIntentDonationMetadata(pub id);
impl std::ops::Deref for INSendMessageIntentDonationMetadata {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSendMessageIntentDonationMetadata {}
impl INSendMessageIntentDonationMetadata {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSendMessageIntentDonationMetadata").unwrap(), alloc) })
    }
}
impl IINIntentDonationMetadata for INSendMessageIntentDonationMetadata {}
impl PNSCopying for INSendMessageIntentDonationMetadata {}
impl PNSSecureCoding for INSendMessageIntentDonationMetadata {}
impl From<INSendMessageIntentDonationMetadata> for INIntentDonationMetadata {
    fn from(child: INSendMessageIntentDonationMetadata) -> INIntentDonationMetadata {
        INIntentDonationMetadata(child.0)
    }
}
impl std::convert::TryFrom<INIntentDonationMetadata> for INSendMessageIntentDonationMetadata {
    type Error = &'static str;
    fn try_from(
        parent: INIntentDonationMetadata,
    ) -> Result<INSendMessageIntentDonationMetadata, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSendMessageIntentDonationMetadata").unwrap())
        };
        if is_kind_of {
            Ok(INSendMessageIntentDonationMetadata(parent.0))
        } else {
            Err ("This INIntentDonationMetadata cannot be downcasted to INSendMessageIntentDonationMetadata" ,)
        }
    }
}
impl INSObject for INSendMessageIntentDonationMetadata {}
impl PNSObject for INSendMessageIntentDonationMetadata {}
impl IINSendMessageIntentDonationMetadata for INSendMessageIntentDonationMetadata {}
pub trait IINSendMessageIntentDonationMetadata: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn mentionsCurrentUser(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, mentionsCurrentUser)
    }
    unsafe fn setMentionsCurrentUser_(&self, mentionsCurrentUser: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMentionsCurrentUser : mentionsCurrentUser)
    }
    unsafe fn isReplyToCurrentUser(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isReplyToCurrentUser)
    }
    unsafe fn setReplyToCurrentUser_(&self, replyToCurrentUser: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setReplyToCurrentUser : replyToCurrentUser)
    }
    unsafe fn notifyRecipientAnyway(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, notifyRecipientAnyway)
    }
    unsafe fn setNotifyRecipientAnyway_(&self, notifyRecipientAnyway: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setNotifyRecipientAnyway : notifyRecipientAnyway)
    }
    unsafe fn recipientCount(&self) -> NSUInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, recipientCount)
    }
    unsafe fn setRecipientCount_(&self, recipientCount: NSUInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRecipientCount : recipientCount)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INExtension(pub id);
impl std::ops::Deref for INExtension {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INExtension {}
impl INExtension {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INExtension").unwrap(), alloc) })
    }
}
impl PINIntentHandlerProviding for INExtension {}
impl INSObject for INExtension {}
impl PNSObject for INExtension {}
impl std::convert::TryFrom<NSObject> for INExtension {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INExtension, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INExtension").unwrap()) };
        if is_kind_of {
            Ok(INExtension(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INExtension")
        }
    }
}
impl IINExtension for INExtension {}
pub trait IINExtension: Sized + std::ops::Deref {}
pub type INPersonHandleType = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INPersonHandle(pub id);
impl std::ops::Deref for INPersonHandle {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INPersonHandle {}
impl INPersonHandle {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INPersonHandle").unwrap(), alloc) })
    }
}
impl PNSCopying for INPersonHandle {}
impl PNSSecureCoding for INPersonHandle {}
impl INSObject for INPersonHandle {}
impl PNSObject for INPersonHandle {}
impl std::convert::TryFrom<NSObject> for INPersonHandle {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INPersonHandle, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INPersonHandle").unwrap()) };
        if is_kind_of {
            Ok(INPersonHandle(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INPersonHandle")
        }
    }
}
impl IINPersonHandle for INPersonHandle {}
pub trait IINPersonHandle: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithValue_type_label_(
        &self,
        value: NSString,
        type_: INPersonHandleType,
        label: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithValue : value, r#type : type_, label : label)
    }
    unsafe fn initWithValue_type_(&self, value: NSString, type_: INPersonHandleType) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithValue : value, r#type : type_)
    }
    unsafe fn value(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, value)
    }
    unsafe fn type_(&self) -> INPersonHandleType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, type)
    }
    unsafe fn label(&self) -> INPersonHandleLabel
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, label)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INCurrencyAmount(pub id);
impl std::ops::Deref for INCurrencyAmount {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INCurrencyAmount {}
impl INCurrencyAmount {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INCurrencyAmount").unwrap(), alloc) })
    }
}
impl PNSCopying for INCurrencyAmount {}
impl PNSSecureCoding for INCurrencyAmount {}
impl INSObject for INCurrencyAmount {}
impl PNSObject for INCurrencyAmount {}
impl std::convert::TryFrom<NSObject> for INCurrencyAmount {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INCurrencyAmount, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INCurrencyAmount").unwrap()) };
        if is_kind_of {
            Ok(INCurrencyAmount(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INCurrencyAmount")
        }
    }
}
impl IINCurrencyAmount for INCurrencyAmount {}
pub trait IINCurrencyAmount: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithAmount_currencyCode_(
        &self,
        amount: NSDecimalNumber,
        currencyCode: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithAmount : amount, currencyCode : currencyCode)
    }
    unsafe fn amount(&self) -> NSDecimalNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, amount)
    }
    unsafe fn currencyCode(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, currencyCode)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INDateComponentsRange(pub id);
impl std::ops::Deref for INDateComponentsRange {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INDateComponentsRange {}
impl INDateComponentsRange {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INDateComponentsRange").unwrap(), alloc) })
    }
}
impl PNSCopying for INDateComponentsRange {}
impl PNSSecureCoding for INDateComponentsRange {}
impl INSObject for INDateComponentsRange {}
impl PNSObject for INDateComponentsRange {}
impl std::convert::TryFrom<NSObject> for INDateComponentsRange {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INDateComponentsRange, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INDateComponentsRange").unwrap()) };
        if is_kind_of {
            Ok(INDateComponentsRange(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INDateComponentsRange")
        }
    }
}
impl IINDateComponentsRange for INDateComponentsRange {}
pub trait IINDateComponentsRange: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithStartDateComponents_endDateComponents_(
        &self,
        startDateComponents: NSDateComponents,
        endDateComponents: NSDateComponents,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithStartDateComponents : startDateComponents, endDateComponents : endDateComponents)
    }
    unsafe fn initWithStartDateComponents_endDateComponents_recurrenceRule_(
        &self,
        startDateComponents: NSDateComponents,
        endDateComponents: NSDateComponents,
        recurrenceRule: INRecurrenceRule,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithStartDateComponents : startDateComponents, endDateComponents : endDateComponents, recurrenceRule : recurrenceRule)
    }
    unsafe fn initWithEKRecurrenceRule_(&self, recurrenceRule: EKRecurrenceRule) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithEKRecurrenceRule : recurrenceRule)
    }
    unsafe fn EKRecurrenceRule(&self) -> EKRecurrenceRule
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, EKRecurrenceRule)
    }
    unsafe fn startDateComponents(&self) -> NSDateComponents
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, startDateComponents)
    }
    unsafe fn endDateComponents(&self) -> NSDateComponents
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, endDateComponents)
    }
    unsafe fn recurrenceRule(&self) -> INRecurrenceRule
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, recurrenceRule)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INImage(pub id);
impl std::ops::Deref for INImage {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INImage {}
impl INImage {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INImage").unwrap(), alloc) })
    }
}
impl PNSCopying for INImage {}
impl PNSSecureCoding for INImage {}
impl INSObject for INImage {}
impl PNSObject for INImage {}
impl std::convert::TryFrom<NSObject> for INImage {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INImage, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INImage").unwrap()) };
        if is_kind_of {
            Ok(INImage(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INImage")
        }
    }
}
impl IINImage for INImage {}
pub trait IINImage: Sized + std::ops::Deref {
    unsafe fn imageNamed_(name: NSString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INImage").unwrap(), imageNamed : name)
    }
    unsafe fn systemImageNamed_(systemImageName: NSString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INImage").unwrap(), systemImageNamed : systemImageName)
    }
    unsafe fn imageWithImageData_(imageData: NSData) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INImage").unwrap(), imageWithImageData : imageData)
    }
    unsafe fn imageWithURL_(URL: NSURL) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INImage").unwrap(), imageWithURL : URL)
    }
    unsafe fn imageWithURL_width_height_(URL: NSURL, width: f64, height: f64) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INImage").unwrap(), imageWithURL : URL, width : width, height : height)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSpeakableString(pub id);
impl std::ops::Deref for INSpeakableString {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSpeakableString {}
impl INSpeakableString {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSpeakableString").unwrap(), alloc) })
    }
}
impl PINSpeakable for INSpeakableString {}
impl PNSCopying for INSpeakableString {}
impl PNSSecureCoding for INSpeakableString {}
impl INSObject for INSpeakableString {}
impl PNSObject for INSpeakableString {}
impl std::convert::TryFrom<NSObject> for INSpeakableString {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INSpeakableString, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSpeakableString").unwrap()) };
        if is_kind_of {
            Ok(INSpeakableString(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INSpeakableString")
        }
    }
}
impl IINSpeakableString for INSpeakableString {}
pub trait IINSpeakableString: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithVocabularyIdentifier_spokenPhrase_pronunciationHint_(
        &self,
        vocabularyIdentifier: NSString,
        spokenPhrase: NSString,
        pronunciationHint: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithVocabularyIdentifier : vocabularyIdentifier, spokenPhrase : spokenPhrase, pronunciationHint : pronunciationHint)
    }
    unsafe fn initWithIdentifier_spokenPhrase_pronunciationHint_(
        &self,
        identifier: NSString,
        spokenPhrase: NSString,
        pronunciationHint: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithIdentifier : identifier, spokenPhrase : spokenPhrase, pronunciationHint : pronunciationHint)
    }
    unsafe fn initWithSpokenPhrase_(&self, spokenPhrase: NSString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithSpokenPhrase : spokenPhrase)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INObject(pub id);
impl std::ops::Deref for INObject {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INObject {}
impl INObject {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INObject").unwrap(), alloc) })
    }
}
impl PINSpeakable for INObject {}
impl PNSCopying for INObject {}
impl PNSSecureCoding for INObject {}
impl INSObject for INObject {}
impl PNSObject for INObject {}
impl std::convert::TryFrom<NSObject> for INObject {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INObject, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INObject").unwrap()) };
        if is_kind_of {
            Ok(INObject(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INObject")
        }
    }
}
impl IINObject for INObject {}
pub trait IINObject: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithIdentifier_displayString_pronunciationHint_(
        &self,
        identifier: NSString,
        displayString: NSString,
        pronunciationHint: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithIdentifier : identifier, displayString : displayString, pronunciationHint : pronunciationHint)
    }
    unsafe fn initWithIdentifier_displayString_(
        &self,
        identifier: NSString,
        displayString: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithIdentifier : identifier, displayString : displayString)
    }
    unsafe fn initWithIdentifier_displayString_subtitleString_displayImage_(
        &self,
        identifier: NSString,
        displayString: NSString,
        subtitleString: NSString,
        displayImage: INImage,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithIdentifier : identifier, displayString : displayString, subtitleString : subtitleString, displayImage : displayImage)
    }
    unsafe fn initWithIdentifier_displayString_pronunciationHint_subtitleString_displayImage_(
        &self,
        identifier: NSString,
        displayString: NSString,
        pronunciationHint: NSString,
        subtitleString: NSString,
        displayImage: INImage,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithIdentifier : identifier, displayString : displayString, pronunciationHint : pronunciationHint, subtitleString : subtitleString, displayImage : displayImage)
    }
    unsafe fn identifier(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, identifier)
    }
    unsafe fn displayString(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, displayString)
    }
    unsafe fn pronunciationHint(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, pronunciationHint)
    }
    unsafe fn subtitleString(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, subtitleString)
    }
    unsafe fn setSubtitleString_(&self, subtitleString: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSubtitleString : subtitleString)
    }
    unsafe fn displayImage(&self) -> INImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, displayImage)
    }
    unsafe fn setDisplayImage_(&self, displayImage: INImage)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDisplayImage : displayImage)
    }
    unsafe fn alternativeSpeakableMatches(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, alternativeSpeakableMatches)
    }
    unsafe fn setAlternativeSpeakableMatches_(&self, alternativeSpeakableMatches: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAlternativeSpeakableMatches : alternativeSpeakableMatches)
    }
}
pub type INPersonSuggestionType = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INPerson(pub id);
impl std::ops::Deref for INPerson {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INPerson {}
impl INPerson {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INPerson").unwrap(), alloc) })
    }
}
impl PNSCopying for INPerson {}
impl PNSSecureCoding for INPerson {}
impl INSObject for INPerson {}
impl PNSObject for INPerson {}
impl std::convert::TryFrom<NSObject> for INPerson {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INPerson, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INPerson").unwrap()) };
        if is_kind_of {
            Ok(INPerson(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INPerson")
        }
    }
}
impl IINPerson for INPerson {}
pub trait IINPerson: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithPersonHandle_nameComponents_displayName_image_contactIdentifier_customIdentifier_(
        &self,
        personHandle: INPersonHandle,
        nameComponents: NSPersonNameComponents,
        displayName: NSString,
        image: INImage,
        contactIdentifier: NSString,
        customIdentifier: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithPersonHandle : personHandle, nameComponents : nameComponents, displayName : displayName, image : image, contactIdentifier : contactIdentifier, customIdentifier : customIdentifier)
    }
    unsafe fn initWithPersonHandle_nameComponents_displayName_image_contactIdentifier_customIdentifier_relationship_(
        &self,
        personHandle: INPersonHandle,
        nameComponents: NSPersonNameComponents,
        displayName: NSString,
        image: INImage,
        contactIdentifier: NSString,
        customIdentifier: NSString,
        relationship: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithPersonHandle : personHandle, nameComponents : nameComponents, displayName : displayName, image : image, contactIdentifier : contactIdentifier, customIdentifier : customIdentifier, relationship : relationship)
    }
    unsafe fn initWithPersonHandle_nameComponents_displayName_image_contactIdentifier_customIdentifier_isMe_(
        &self,
        personHandle: INPersonHandle,
        nameComponents: NSPersonNameComponents,
        displayName: NSString,
        image: INImage,
        contactIdentifier: NSString,
        customIdentifier: NSString,
        isMe: BOOL,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithPersonHandle : personHandle, nameComponents : nameComponents, displayName : displayName, image : image, contactIdentifier : contactIdentifier, customIdentifier : customIdentifier, isMe : isMe)
    }
    unsafe fn initWithPersonHandle_nameComponents_displayName_image_contactIdentifier_customIdentifier_isMe_suggestionType_(
        &self,
        personHandle: INPersonHandle,
        nameComponents: NSPersonNameComponents,
        displayName: NSString,
        image: INImage,
        contactIdentifier: NSString,
        customIdentifier: NSString,
        isMe: BOOL,
        suggestionType: INPersonSuggestionType,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithPersonHandle : personHandle, nameComponents : nameComponents, displayName : displayName, image : image, contactIdentifier : contactIdentifier, customIdentifier : customIdentifier, isMe : isMe, suggestionType : suggestionType)
    }
    unsafe fn initWithPersonHandle_nameComponents_displayName_image_contactIdentifier_customIdentifier_isContactSuggestion_suggestionType_(
        &self,
        personHandle: INPersonHandle,
        nameComponents: NSPersonNameComponents,
        displayName: NSString,
        image: INImage,
        contactIdentifier: NSString,
        customIdentifier: NSString,
        isContactSuggestion: BOOL,
        suggestionType: INPersonSuggestionType,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithPersonHandle : personHandle, nameComponents : nameComponents, displayName : displayName, image : image, contactIdentifier : contactIdentifier, customIdentifier : customIdentifier, isContactSuggestion : isContactSuggestion, suggestionType : suggestionType)
    }
    unsafe fn personHandle(&self) -> INPersonHandle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, personHandle)
    }
    unsafe fn nameComponents(&self) -> NSPersonNameComponents
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, nameComponents)
    }
    unsafe fn displayName(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, displayName)
    }
    unsafe fn image(&self) -> INImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, image)
    }
    unsafe fn contactIdentifier(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contactIdentifier)
    }
    unsafe fn customIdentifier(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, customIdentifier)
    }
    unsafe fn relationship(&self) -> INPersonRelationship
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, relationship)
    }
    unsafe fn isContactSuggestion(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isContactSuggestion)
    }
}
impl INPerson_INInteraction for INPerson {}
pub trait INPerson_INInteraction: Sized + std::ops::Deref {
    unsafe fn initWithPersonHandle_nameComponents_displayName_image_contactIdentifier_customIdentifier_aliases_suggestionType_(
        &self,
        personHandle: INPersonHandle,
        nameComponents: NSPersonNameComponents,
        displayName: NSString,
        image: INImage,
        contactIdentifier: NSString,
        customIdentifier: NSString,
        aliases: NSArray,
        suggestionType: INPersonSuggestionType,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithPersonHandle : personHandle, nameComponents : nameComponents, displayName : displayName, image : image, contactIdentifier : contactIdentifier, customIdentifier : customIdentifier, aliases : aliases, suggestionType : suggestionType)
    }
    unsafe fn aliases(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, aliases)
    }
    unsafe fn suggestionType(&self) -> INPersonSuggestionType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, suggestionType)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INRecurrenceRule(pub id);
impl std::ops::Deref for INRecurrenceRule {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INRecurrenceRule {}
impl INRecurrenceRule {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INRecurrenceRule").unwrap(), alloc) })
    }
}
impl PNSCopying for INRecurrenceRule {}
impl PNSSecureCoding for INRecurrenceRule {}
impl INSObject for INRecurrenceRule {}
impl PNSObject for INRecurrenceRule {}
impl std::convert::TryFrom<NSObject> for INRecurrenceRule {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INRecurrenceRule, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INRecurrenceRule").unwrap()) };
        if is_kind_of {
            Ok(INRecurrenceRule(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INRecurrenceRule")
        }
    }
}
impl IINRecurrenceRule for INRecurrenceRule {}
pub trait IINRecurrenceRule: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithInterval_frequency_(
        &self,
        interval: NSUInteger,
        frequency: INRecurrenceFrequency,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithInterval : interval, frequency : frequency)
    }
    unsafe fn initWithInterval_frequency_weeklyRecurrenceDays_(
        &self,
        interval: NSUInteger,
        frequency: INRecurrenceFrequency,
        weeklyRecurrenceDays: INDayOfWeekOptions,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithInterval : interval, frequency : frequency, weeklyRecurrenceDays : weeklyRecurrenceDays)
    }
    unsafe fn interval(&self) -> NSUInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, interval)
    }
    unsafe fn frequency(&self) -> INRecurrenceFrequency
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, frequency)
    }
    unsafe fn weeklyRecurrenceDays(&self) -> INDayOfWeekOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, weeklyRecurrenceDays)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INFile(pub id);
impl std::ops::Deref for INFile {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INFile {}
impl INFile {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INFile").unwrap(), alloc) })
    }
}
impl PNSSecureCoding for INFile {}
impl INSObject for INFile {}
impl PNSObject for INFile {}
impl std::convert::TryFrom<NSObject> for INFile {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INFile, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INFile").unwrap()) };
        if is_kind_of {
            Ok(INFile(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INFile")
        }
    }
}
impl IINFile for INFile {}
pub trait IINFile: Sized + std::ops::Deref {
    unsafe fn data(&self) -> NSData
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, data)
    }
    unsafe fn filename(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, filename)
    }
    unsafe fn setFilename_(&self, filename: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFilename : filename)
    }
    unsafe fn typeIdentifier(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, typeIdentifier)
    }
    unsafe fn fileURL(&self) -> NSURL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, fileURL)
    }
    unsafe fn removedOnCompletion(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, removedOnCompletion)
    }
    unsafe fn setRemovedOnCompletion_(&self, removedOnCompletion: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRemovedOnCompletion : removedOnCompletion)
    }
    unsafe fn fileWithData_filename_typeIdentifier_(
        data: NSData,
        filename: NSString,
        typeIdentifier: NSString,
    ) -> INFile
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INFile").unwrap(), fileWithData : data, filename : filename, typeIdentifier : typeIdentifier)
    }
    unsafe fn fileWithFileURL_filename_typeIdentifier_(
        fileURL: NSURL,
        filename: NSString,
        typeIdentifier: NSString,
    ) -> INFile
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INFile").unwrap(), fileWithFileURL : fileURL, filename : filename, typeIdentifier : typeIdentifier)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INBooleanResolutionResult(pub id);
impl std::ops::Deref for INBooleanResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INBooleanResolutionResult {}
impl INBooleanResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INBooleanResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INBooleanResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INBooleanResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INBooleanResolutionResult, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INBooleanResolutionResult").unwrap()) };
        if is_kind_of {
            Ok(INBooleanResolutionResult(parent.0))
        } else {
            Err("This INIntentResolutionResult cannot be downcasted to INBooleanResolutionResult")
        }
    }
}
impl INSObject for INBooleanResolutionResult {}
impl PNSObject for INBooleanResolutionResult {}
impl IINBooleanResolutionResult for INBooleanResolutionResult {}
pub trait IINBooleanResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedValue_(resolvedValue: BOOL) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INBooleanResolutionResult").unwrap(), successWithResolvedValue : resolvedValue)
    }
    unsafe fn confirmationRequiredWithValueToConfirm_(valueToConfirm: NSNumber) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INBooleanResolutionResult").unwrap(), confirmationRequiredWithValueToConfirm : valueToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INDateComponentsRangeResolutionResult(pub id);
impl std::ops::Deref for INDateComponentsRangeResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INDateComponentsRangeResolutionResult {}
impl INDateComponentsRangeResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INDateComponentsRangeResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INDateComponentsRangeResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INDateComponentsRangeResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INDateComponentsRangeResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INDateComponentsRangeResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INDateComponentsRangeResolutionResult(parent.0))
        } else {
            Err ("This INIntentResolutionResult cannot be downcasted to INDateComponentsRangeResolutionResult" ,)
        }
    }
}
impl INSObject for INDateComponentsRangeResolutionResult {}
impl PNSObject for INDateComponentsRangeResolutionResult {}
impl IINDateComponentsRangeResolutionResult for INDateComponentsRangeResolutionResult {}
pub trait IINDateComponentsRangeResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedDateComponentsRange_(
        resolvedDateComponentsRange: INDateComponentsRange,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INDateComponentsRangeResolutionResult").unwrap(), successWithResolvedDateComponentsRange : resolvedDateComponentsRange)
    }
    unsafe fn disambiguationWithDateComponentsRangesToDisambiguate_(
        dateComponentsRangesToDisambiguate: NSArray,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INDateComponentsRangeResolutionResult").unwrap(), disambiguationWithDateComponentsRangesToDisambiguate : dateComponentsRangesToDisambiguate)
    }
    unsafe fn confirmationRequiredWithDateComponentsRangeToConfirm_(
        dateComponentsRangeToConfirm: INDateComponentsRange,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INDateComponentsRangeResolutionResult").unwrap(), confirmationRequiredWithDateComponentsRangeToConfirm : dateComponentsRangeToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INIntegerResolutionResult(pub id);
impl std::ops::Deref for INIntegerResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INIntegerResolutionResult {}
impl INIntegerResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INIntegerResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INIntegerResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INIntegerResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INIntegerResolutionResult, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INIntegerResolutionResult").unwrap()) };
        if is_kind_of {
            Ok(INIntegerResolutionResult(parent.0))
        } else {
            Err("This INIntentResolutionResult cannot be downcasted to INIntegerResolutionResult")
        }
    }
}
impl INSObject for INIntegerResolutionResult {}
impl PNSObject for INIntegerResolutionResult {}
impl IINIntegerResolutionResult for INIntegerResolutionResult {}
pub trait IINIntegerResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedValue_(resolvedValue: NSInteger) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INIntegerResolutionResult").unwrap(), successWithResolvedValue : resolvedValue)
    }
    unsafe fn confirmationRequiredWithValueToConfirm_(valueToConfirm: NSNumber) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INIntegerResolutionResult").unwrap(), confirmationRequiredWithValueToConfirm : valueToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INPlacemarkResolutionResult(pub id);
impl std::ops::Deref for INPlacemarkResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INPlacemarkResolutionResult {}
impl INPlacemarkResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INPlacemarkResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INPlacemarkResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INPlacemarkResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INPlacemarkResolutionResult, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INPlacemarkResolutionResult").unwrap()) };
        if is_kind_of {
            Ok(INPlacemarkResolutionResult(parent.0))
        } else {
            Err("This INIntentResolutionResult cannot be downcasted to INPlacemarkResolutionResult")
        }
    }
}
impl INSObject for INPlacemarkResolutionResult {}
impl PNSObject for INPlacemarkResolutionResult {}
impl IINPlacemarkResolutionResult for INPlacemarkResolutionResult {}
pub trait IINPlacemarkResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedPlacemark_(resolvedPlacemark: CLPlacemark) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INPlacemarkResolutionResult").unwrap(), successWithResolvedPlacemark : resolvedPlacemark)
    }
    unsafe fn disambiguationWithPlacemarksToDisambiguate_(
        placemarksToDisambiguate: NSArray,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INPlacemarkResolutionResult").unwrap(), disambiguationWithPlacemarksToDisambiguate : placemarksToDisambiguate)
    }
    unsafe fn confirmationRequiredWithPlacemarkToConfirm_(
        placemarkToConfirm: CLPlacemark,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INPlacemarkResolutionResult").unwrap(), confirmationRequiredWithPlacemarkToConfirm : placemarkToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSpeakableStringResolutionResult(pub id);
impl std::ops::Deref for INSpeakableStringResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSpeakableStringResolutionResult {}
impl INSpeakableStringResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSpeakableStringResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INSpeakableStringResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INSpeakableStringResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INSpeakableStringResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSpeakableStringResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INSpeakableStringResolutionResult(parent.0))
        } else {
            Err ("This INIntentResolutionResult cannot be downcasted to INSpeakableStringResolutionResult" ,)
        }
    }
}
impl INSObject for INSpeakableStringResolutionResult {}
impl PNSObject for INSpeakableStringResolutionResult {}
impl IINSpeakableStringResolutionResult for INSpeakableStringResolutionResult {}
pub trait IINSpeakableStringResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedString_(resolvedString: INSpeakableString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INSpeakableStringResolutionResult").unwrap(), successWithResolvedString : resolvedString)
    }
    unsafe fn disambiguationWithStringsToDisambiguate_(
        stringsToDisambiguate: NSArray,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INSpeakableStringResolutionResult").unwrap(), disambiguationWithStringsToDisambiguate : stringsToDisambiguate)
    }
    unsafe fn confirmationRequiredWithStringToConfirm_(
        stringToConfirm: INSpeakableString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INSpeakableStringResolutionResult").unwrap(), confirmationRequiredWithStringToConfirm : stringToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INStringResolutionResult(pub id);
impl std::ops::Deref for INStringResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INStringResolutionResult {}
impl INStringResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INStringResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INStringResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INStringResolutionResult {
    type Error = &'static str;
    fn try_from(parent: INIntentResolutionResult) -> Result<INStringResolutionResult, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INStringResolutionResult").unwrap()) };
        if is_kind_of {
            Ok(INStringResolutionResult(parent.0))
        } else {
            Err("This INIntentResolutionResult cannot be downcasted to INStringResolutionResult")
        }
    }
}
impl INSObject for INStringResolutionResult {}
impl PNSObject for INStringResolutionResult {}
impl IINStringResolutionResult for INStringResolutionResult {}
pub trait IINStringResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedString_(resolvedString: NSString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INStringResolutionResult").unwrap(), successWithResolvedString : resolvedString)
    }
    unsafe fn disambiguationWithStringsToDisambiguate_(
        stringsToDisambiguate: NSArray,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INStringResolutionResult").unwrap(), disambiguationWithStringsToDisambiguate : stringsToDisambiguate)
    }
    unsafe fn confirmationRequiredWithStringToConfirm_(stringToConfirm: NSString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INStringResolutionResult").unwrap(), confirmationRequiredWithStringToConfirm : stringToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INTemperatureResolutionResult(pub id);
impl std::ops::Deref for INTemperatureResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INTemperatureResolutionResult {}
impl INTemperatureResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INTemperatureResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INTemperatureResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INTemperatureResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INTemperatureResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INTemperatureResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INTemperatureResolutionResult(parent.0))
        } else {
            Err ("This INIntentResolutionResult cannot be downcasted to INTemperatureResolutionResult" ,)
        }
    }
}
impl INSObject for INTemperatureResolutionResult {}
impl PNSObject for INTemperatureResolutionResult {}
impl IINTemperatureResolutionResult for INTemperatureResolutionResult {}
pub trait IINTemperatureResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedTemperature_(resolvedTemperature: NSMeasurement) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INTemperatureResolutionResult").unwrap(), successWithResolvedTemperature : resolvedTemperature)
    }
    unsafe fn disambiguationWithTemperaturesToDisambiguate_(
        temperaturesToDisambiguate: NSArray,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INTemperatureResolutionResult").unwrap(), disambiguationWithTemperaturesToDisambiguate : temperaturesToDisambiguate)
    }
    unsafe fn confirmationRequiredWithTemperatureToConfirm_(
        temperatureToConfirm: NSMeasurement,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INTemperatureResolutionResult").unwrap(), confirmationRequiredWithTemperatureToConfirm : temperatureToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INDateComponentsResolutionResult(pub id);
impl std::ops::Deref for INDateComponentsResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INDateComponentsResolutionResult {}
impl INDateComponentsResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INDateComponentsResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INDateComponentsResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INDateComponentsResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INDateComponentsResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INDateComponentsResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INDateComponentsResolutionResult(parent.0))
        } else {
            Err ("This INIntentResolutionResult cannot be downcasted to INDateComponentsResolutionResult" ,)
        }
    }
}
impl INSObject for INDateComponentsResolutionResult {}
impl PNSObject for INDateComponentsResolutionResult {}
impl IINDateComponentsResolutionResult for INDateComponentsResolutionResult {}
pub trait IINDateComponentsResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedDateComponents_(
        resolvedDateComponents: NSDateComponents,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INDateComponentsResolutionResult").unwrap(), successWithResolvedDateComponents : resolvedDateComponents)
    }
    unsafe fn disambiguationWithDateComponentsToDisambiguate_(
        dateComponentsToDisambiguate: NSArray,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INDateComponentsResolutionResult").unwrap(), disambiguationWithDateComponentsToDisambiguate : dateComponentsToDisambiguate)
    }
    unsafe fn confirmationRequiredWithDateComponentsToConfirm_(
        dateComponentsToConfirm: NSDateComponents,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INDateComponentsResolutionResult").unwrap(), confirmationRequiredWithDateComponentsToConfirm : dateComponentsToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INRestaurantResolutionResult(pub id);
impl std::ops::Deref for INRestaurantResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INRestaurantResolutionResult {}
impl INRestaurantResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INRestaurantResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INRestaurantResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INRestaurantResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INRestaurantResolutionResult, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INRestaurantResolutionResult").unwrap()) };
        if is_kind_of {
            Ok(INRestaurantResolutionResult(parent.0))
        } else {
            Err ("This INIntentResolutionResult cannot be downcasted to INRestaurantResolutionResult" ,)
        }
    }
}
impl INSObject for INRestaurantResolutionResult {}
impl PNSObject for INRestaurantResolutionResult {}
impl IINRestaurantResolutionResult for INRestaurantResolutionResult {}
pub trait IINRestaurantResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedRestaurant_(resolvedRestaurant: INRestaurant) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INRestaurantResolutionResult").unwrap(), successWithResolvedRestaurant : resolvedRestaurant)
    }
    unsafe fn disambiguationWithRestaurantsToDisambiguate_(
        restaurantsToDisambiguate: NSArray,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INRestaurantResolutionResult").unwrap(), disambiguationWithRestaurantsToDisambiguate : restaurantsToDisambiguate)
    }
    unsafe fn confirmationRequiredWithRestaurantToConfirm_(
        restaurantToConfirm: INRestaurant,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INRestaurantResolutionResult").unwrap(), confirmationRequiredWithRestaurantToConfirm : restaurantToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INRestaurantGuestResolutionResult(pub id);
impl std::ops::Deref for INRestaurantGuestResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INRestaurantGuestResolutionResult {}
impl INRestaurantGuestResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INRestaurantGuestResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INRestaurantGuestResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INRestaurantGuestResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INRestaurantGuestResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INRestaurantGuestResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INRestaurantGuestResolutionResult(parent.0))
        } else {
            Err ("This INIntentResolutionResult cannot be downcasted to INRestaurantGuestResolutionResult" ,)
        }
    }
}
impl INSObject for INRestaurantGuestResolutionResult {}
impl PNSObject for INRestaurantGuestResolutionResult {}
impl IINRestaurantGuestResolutionResult for INRestaurantGuestResolutionResult {}
pub trait IINRestaurantGuestResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedRestaurantGuest_(
        resolvedRestaurantGuest: INRestaurantGuest,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INRestaurantGuestResolutionResult").unwrap(), successWithResolvedRestaurantGuest : resolvedRestaurantGuest)
    }
    unsafe fn disambiguationWithRestaurantGuestsToDisambiguate_(
        restaurantGuestsToDisambiguate: NSArray,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INRestaurantGuestResolutionResult").unwrap(), disambiguationWithRestaurantGuestsToDisambiguate : restaurantGuestsToDisambiguate)
    }
    unsafe fn confirmationRequiredWithRestaurantGuestToConfirm_(
        restaurantGuestToConfirm: INRestaurantGuest,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INRestaurantGuestResolutionResult").unwrap(), confirmationRequiredWithRestaurantGuestToConfirm : restaurantGuestToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INURLResolutionResult(pub id);
impl std::ops::Deref for INURLResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INURLResolutionResult {}
impl INURLResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INURLResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INURLResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INURLResolutionResult {
    type Error = &'static str;
    fn try_from(parent: INIntentResolutionResult) -> Result<INURLResolutionResult, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INURLResolutionResult").unwrap()) };
        if is_kind_of {
            Ok(INURLResolutionResult(parent.0))
        } else {
            Err("This INIntentResolutionResult cannot be downcasted to INURLResolutionResult")
        }
    }
}
impl INSObject for INURLResolutionResult {}
impl PNSObject for INURLResolutionResult {}
impl IINURLResolutionResult for INURLResolutionResult {}
pub trait IINURLResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedURL_(resolvedURL: NSURL) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INURLResolutionResult").unwrap(), successWithResolvedURL : resolvedURL)
    }
    unsafe fn disambiguationWithURLsToDisambiguate_(urlsToDisambiguate: NSArray) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INURLResolutionResult").unwrap(), disambiguationWithURLsToDisambiguate : urlsToDisambiguate)
    }
    unsafe fn confirmationRequiredWithURLToConfirm_(urlToConfirm: NSURL) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INURLResolutionResult").unwrap(), confirmationRequiredWithURLToConfirm : urlToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INLengthResolutionResult(pub id);
impl std::ops::Deref for INLengthResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INLengthResolutionResult {}
impl INLengthResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INLengthResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INLengthResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INLengthResolutionResult {
    type Error = &'static str;
    fn try_from(parent: INIntentResolutionResult) -> Result<INLengthResolutionResult, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INLengthResolutionResult").unwrap()) };
        if is_kind_of {
            Ok(INLengthResolutionResult(parent.0))
        } else {
            Err("This INIntentResolutionResult cannot be downcasted to INLengthResolutionResult")
        }
    }
}
impl INSObject for INLengthResolutionResult {}
impl PNSObject for INLengthResolutionResult {}
impl IINLengthResolutionResult for INLengthResolutionResult {}
pub trait IINLengthResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedLength_(resolvedLength: NSMeasurement) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INLengthResolutionResult").unwrap(), successWithResolvedLength : resolvedLength)
    }
    unsafe fn disambiguationWithLengthsToDisambiguate_(
        lengthsToDisambiguate: NSArray,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INLengthResolutionResult").unwrap(), disambiguationWithLengthsToDisambiguate : lengthsToDisambiguate)
    }
    unsafe fn confirmationRequiredWithLengthToConfirm_(
        lengthToConfirm: NSMeasurement,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INLengthResolutionResult").unwrap(), confirmationRequiredWithLengthToConfirm : lengthToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INMassResolutionResult(pub id);
impl std::ops::Deref for INMassResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INMassResolutionResult {}
impl INMassResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INMassResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INMassResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INMassResolutionResult {
    type Error = &'static str;
    fn try_from(parent: INIntentResolutionResult) -> Result<INMassResolutionResult, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INMassResolutionResult").unwrap()) };
        if is_kind_of {
            Ok(INMassResolutionResult(parent.0))
        } else {
            Err("This INIntentResolutionResult cannot be downcasted to INMassResolutionResult")
        }
    }
}
impl INSObject for INMassResolutionResult {}
impl PNSObject for INMassResolutionResult {}
impl IINMassResolutionResult for INMassResolutionResult {}
pub trait IINMassResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedMass_(resolvedMass: NSMeasurement) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INMassResolutionResult").unwrap(), successWithResolvedMass : resolvedMass)
    }
    unsafe fn disambiguationWithMassToDisambiguate_(massToDisambiguate: NSArray) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INMassResolutionResult").unwrap(), disambiguationWithMassToDisambiguate : massToDisambiguate)
    }
    unsafe fn confirmationRequiredWithMassToConfirm_(massToConfirm: NSMeasurement) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INMassResolutionResult").unwrap(), confirmationRequiredWithMassToConfirm : massToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INVolumeResolutionResult(pub id);
impl std::ops::Deref for INVolumeResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INVolumeResolutionResult {}
impl INVolumeResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INVolumeResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INVolumeResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INVolumeResolutionResult {
    type Error = &'static str;
    fn try_from(parent: INIntentResolutionResult) -> Result<INVolumeResolutionResult, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INVolumeResolutionResult").unwrap()) };
        if is_kind_of {
            Ok(INVolumeResolutionResult(parent.0))
        } else {
            Err("This INIntentResolutionResult cannot be downcasted to INVolumeResolutionResult")
        }
    }
}
impl INSObject for INVolumeResolutionResult {}
impl PNSObject for INVolumeResolutionResult {}
impl IINVolumeResolutionResult for INVolumeResolutionResult {}
pub trait IINVolumeResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedVolume_(resolvedVolume: NSMeasurement) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INVolumeResolutionResult").unwrap(), successWithResolvedVolume : resolvedVolume)
    }
    unsafe fn disambiguationWithVolumeToDisambiguate_(volumeToDisambiguate: NSArray) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INVolumeResolutionResult").unwrap(), disambiguationWithVolumeToDisambiguate : volumeToDisambiguate)
    }
    unsafe fn confirmationRequiredWithVolumeToConfirm_(
        volumeToConfirm: NSMeasurement,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INVolumeResolutionResult").unwrap(), confirmationRequiredWithVolumeToConfirm : volumeToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSpeedResolutionResult(pub id);
impl std::ops::Deref for INSpeedResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSpeedResolutionResult {}
impl INSpeedResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSpeedResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INSpeedResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INSpeedResolutionResult {
    type Error = &'static str;
    fn try_from(parent: INIntentResolutionResult) -> Result<INSpeedResolutionResult, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSpeedResolutionResult").unwrap()) };
        if is_kind_of {
            Ok(INSpeedResolutionResult(parent.0))
        } else {
            Err("This INIntentResolutionResult cannot be downcasted to INSpeedResolutionResult")
        }
    }
}
impl INSObject for INSpeedResolutionResult {}
impl PNSObject for INSpeedResolutionResult {}
impl IINSpeedResolutionResult for INSpeedResolutionResult {}
pub trait IINSpeedResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedSpeed_(resolvedSpeed: NSMeasurement) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INSpeedResolutionResult").unwrap(), successWithResolvedSpeed : resolvedSpeed)
    }
    unsafe fn disambiguationWithSpeedToDisambiguate_(speedToDisambiguate: NSArray) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INSpeedResolutionResult").unwrap(), disambiguationWithSpeedToDisambiguate : speedToDisambiguate)
    }
    unsafe fn confirmationRequiredWithSpeedToConfirm_(speedToConfirm: NSMeasurement) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INSpeedResolutionResult").unwrap(), confirmationRequiredWithSpeedToConfirm : speedToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INEnergyResolutionResult(pub id);
impl std::ops::Deref for INEnergyResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INEnergyResolutionResult {}
impl INEnergyResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INEnergyResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INEnergyResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INEnergyResolutionResult {
    type Error = &'static str;
    fn try_from(parent: INIntentResolutionResult) -> Result<INEnergyResolutionResult, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INEnergyResolutionResult").unwrap()) };
        if is_kind_of {
            Ok(INEnergyResolutionResult(parent.0))
        } else {
            Err("This INIntentResolutionResult cannot be downcasted to INEnergyResolutionResult")
        }
    }
}
impl INSObject for INEnergyResolutionResult {}
impl PNSObject for INEnergyResolutionResult {}
impl IINEnergyResolutionResult for INEnergyResolutionResult {}
pub trait IINEnergyResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedEnergy_(resolvedEnergy: NSMeasurement) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INEnergyResolutionResult").unwrap(), successWithResolvedEnergy : resolvedEnergy)
    }
    unsafe fn disambiguationWithEnergyToDisambiguate_(energyToDisambiguate: NSArray) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INEnergyResolutionResult").unwrap(), disambiguationWithEnergyToDisambiguate : energyToDisambiguate)
    }
    unsafe fn confirmationRequiredWithEnergyToConfirm_(
        energyToConfirm: NSMeasurement,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INEnergyResolutionResult").unwrap(), confirmationRequiredWithEnergyToConfirm : energyToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INEnumResolutionResult(pub id);
impl std::ops::Deref for INEnumResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INEnumResolutionResult {}
impl INEnumResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INEnumResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INEnumResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INEnumResolutionResult {
    type Error = &'static str;
    fn try_from(parent: INIntentResolutionResult) -> Result<INEnumResolutionResult, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INEnumResolutionResult").unwrap()) };
        if is_kind_of {
            Ok(INEnumResolutionResult(parent.0))
        } else {
            Err("This INIntentResolutionResult cannot be downcasted to INEnumResolutionResult")
        }
    }
}
impl INSObject for INEnumResolutionResult {}
impl PNSObject for INEnumResolutionResult {}
impl IINEnumResolutionResult for INEnumResolutionResult {}
pub trait IINEnumResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedValue_(resolvedValue: NSInteger) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INEnumResolutionResult").unwrap(), successWithResolvedValue : resolvedValue)
    }
    unsafe fn confirmationRequiredWithValueToConfirm_(valueToConfirm: NSInteger) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INEnumResolutionResult").unwrap(), confirmationRequiredWithValueToConfirm : valueToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INObjectResolutionResult(pub id);
impl std::ops::Deref for INObjectResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INObjectResolutionResult {}
impl INObjectResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INObjectResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INObjectResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INObjectResolutionResult {
    type Error = &'static str;
    fn try_from(parent: INIntentResolutionResult) -> Result<INObjectResolutionResult, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INObjectResolutionResult").unwrap()) };
        if is_kind_of {
            Ok(INObjectResolutionResult(parent.0))
        } else {
            Err("This INIntentResolutionResult cannot be downcasted to INObjectResolutionResult")
        }
    }
}
impl INSObject for INObjectResolutionResult {}
impl PNSObject for INObjectResolutionResult {}
impl IINObjectResolutionResult for INObjectResolutionResult {}
pub trait IINObjectResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedObject_(resolvedObject: INObject) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INObjectResolutionResult").unwrap(), successWithResolvedObject : resolvedObject)
    }
    unsafe fn disambiguationWithObjectsToDisambiguate_(
        objectsToDisambiguate: NSArray,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INObjectResolutionResult").unwrap(), disambiguationWithObjectsToDisambiguate : objectsToDisambiguate)
    }
    unsafe fn confirmationRequiredWithObjectToConfirm_(objectToConfirm: INObject) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INObjectResolutionResult").unwrap(), confirmationRequiredWithObjectToConfirm : objectToConfirm)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INTimeIntervalResolutionResult(pub id);
impl std::ops::Deref for INTimeIntervalResolutionResult {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INTimeIntervalResolutionResult {}
impl INTimeIntervalResolutionResult {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INTimeIntervalResolutionResult").unwrap(), alloc) })
    }
}
impl IINIntentResolutionResult for INTimeIntervalResolutionResult {}
impl std::convert::TryFrom<INIntentResolutionResult> for INTimeIntervalResolutionResult {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResolutionResult,
    ) -> Result<INTimeIntervalResolutionResult, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INTimeIntervalResolutionResult").unwrap())
        };
        if is_kind_of {
            Ok(INTimeIntervalResolutionResult(parent.0))
        } else {
            Err ("This INIntentResolutionResult cannot be downcasted to INTimeIntervalResolutionResult" ,)
        }
    }
}
impl INSObject for INTimeIntervalResolutionResult {}
impl PNSObject for INTimeIntervalResolutionResult {}
impl IINTimeIntervalResolutionResult for INTimeIntervalResolutionResult {}
pub trait IINTimeIntervalResolutionResult: Sized + std::ops::Deref {
    unsafe fn successWithResolvedTimeInterval_(resolvedTimeInterval: NSTimeInterval) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INTimeIntervalResolutionResult").unwrap(), successWithResolvedTimeInterval : resolvedTimeInterval)
    }
    unsafe fn confirmationRequiredWithTimeIntervalToConfirm_(
        timeIntervalToConfirm: NSTimeInterval,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INTimeIntervalResolutionResult").unwrap(), confirmationRequiredWithTimeIntervalToConfirm : timeIntervalToConfirm)
    }
}
pub type INMessageType = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INMessage(pub id);
impl std::ops::Deref for INMessage {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INMessage {}
impl INMessage {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INMessage").unwrap(), alloc) })
    }
}
impl PNSCopying for INMessage {}
impl PNSSecureCoding for INMessage {}
impl INSObject for INMessage {}
impl PNSObject for INMessage {}
impl std::convert::TryFrom<NSObject> for INMessage {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INMessage, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INMessage").unwrap()) };
        if is_kind_of {
            Ok(INMessage(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INMessage")
        }
    }
}
impl IINMessage for INMessage {}
pub trait IINMessage: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithIdentifier_conversationIdentifier_content_dateSent_sender_recipients_groupName_messageType_serviceName_attachmentFiles_(
        &self,
        identifier: NSString,
        conversationIdentifier: NSString,
        content: NSString,
        dateSent: NSDate,
        sender: INPerson,
        recipients: NSArray,
        groupName: INSpeakableString,
        messageType: INMessageType,
        serviceName: NSString,
        attachmentFiles: NSArray,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithIdentifier : identifier, conversationIdentifier : conversationIdentifier, content : content, dateSent : dateSent, sender : sender, recipients : recipients, groupName : groupName, messageType : messageType, serviceName : serviceName, attachmentFiles : attachmentFiles)
    }
    unsafe fn initWithIdentifier_conversationIdentifier_content_dateSent_sender_recipients_groupName_messageType_serviceName_audioMessageFile_(
        &self,
        identifier: NSString,
        conversationIdentifier: NSString,
        content: NSString,
        dateSent: NSDate,
        sender: INPerson,
        recipients: NSArray,
        groupName: INSpeakableString,
        messageType: INMessageType,
        serviceName: NSString,
        audioMessageFile: INFile,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithIdentifier : identifier, conversationIdentifier : conversationIdentifier, content : content, dateSent : dateSent, sender : sender, recipients : recipients, groupName : groupName, messageType : messageType, serviceName : serviceName, audioMessageFile : audioMessageFile)
    }
    unsafe fn initWithIdentifier_conversationIdentifier_content_dateSent_sender_recipients_groupName_messageType_serviceName_(
        &self,
        identifier: NSString,
        conversationIdentifier: NSString,
        content: NSString,
        dateSent: NSDate,
        sender: INPerson,
        recipients: NSArray,
        groupName: INSpeakableString,
        messageType: INMessageType,
        serviceName: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithIdentifier : identifier, conversationIdentifier : conversationIdentifier, content : content, dateSent : dateSent, sender : sender, recipients : recipients, groupName : groupName, messageType : messageType, serviceName : serviceName)
    }
    unsafe fn initWithIdentifier_conversationIdentifier_content_dateSent_sender_recipients_groupName_messageType_(
        &self,
        identifier: NSString,
        conversationIdentifier: NSString,
        content: NSString,
        dateSent: NSDate,
        sender: INPerson,
        recipients: NSArray,
        groupName: INSpeakableString,
        messageType: INMessageType,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithIdentifier : identifier, conversationIdentifier : conversationIdentifier, content : content, dateSent : dateSent, sender : sender, recipients : recipients, groupName : groupName, messageType : messageType)
    }
    unsafe fn initWithIdentifier_conversationIdentifier_content_dateSent_sender_recipients_messageType_(
        &self,
        identifier: NSString,
        conversationIdentifier: NSString,
        content: NSString,
        dateSent: NSDate,
        sender: INPerson,
        recipients: NSArray,
        messageType: INMessageType,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithIdentifier : identifier, conversationIdentifier : conversationIdentifier, content : content, dateSent : dateSent, sender : sender, recipients : recipients, messageType : messageType)
    }
    unsafe fn initWithIdentifier_content_dateSent_sender_recipients_(
        &self,
        identifier: NSString,
        content: NSString,
        dateSent: NSDate,
        sender: INPerson,
        recipients: NSArray,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithIdentifier : identifier, content : content, dateSent : dateSent, sender : sender, recipients : recipients)
    }
    unsafe fn initWithIdentifier_conversationIdentifier_content_dateSent_sender_recipients_groupName_serviceName_linkMetadata_(
        &self,
        identifier: NSString,
        conversationIdentifier: NSString,
        content: NSString,
        dateSent: NSDate,
        sender: INPerson,
        recipients: NSArray,
        groupName: INSpeakableString,
        serviceName: NSString,
        linkMetadata: INMessageLinkMetadata,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithIdentifier : identifier, conversationIdentifier : conversationIdentifier, content : content, dateSent : dateSent, sender : sender, recipients : recipients, groupName : groupName, serviceName : serviceName, linkMetadata : linkMetadata)
    }
    unsafe fn initWithIdentifier_conversationIdentifier_content_dateSent_sender_recipients_groupName_serviceName_messageType_numberOfAttachments_(
        &self,
        identifier: NSString,
        conversationIdentifier: NSString,
        content: NSString,
        dateSent: NSDate,
        sender: INPerson,
        recipients: NSArray,
        groupName: INSpeakableString,
        serviceName: NSString,
        messageType: INMessageType,
        numberOfAttachments: NSNumber,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithIdentifier : identifier, conversationIdentifier : conversationIdentifier, content : content, dateSent : dateSent, sender : sender, recipients : recipients, groupName : groupName, serviceName : serviceName, messageType : messageType, numberOfAttachments : numberOfAttachments)
    }
    unsafe fn initWithIdentifier_conversationIdentifier_content_dateSent_sender_recipients_groupName_serviceName_messageType_referencedMessage_reaction_(
        &self,
        identifier: NSString,
        conversationIdentifier: NSString,
        content: NSString,
        dateSent: NSDate,
        sender: INPerson,
        recipients: NSArray,
        groupName: INSpeakableString,
        serviceName: NSString,
        messageType: INMessageType,
        referencedMessage: INMessage,
        reaction: INMessageReaction,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithIdentifier : identifier, conversationIdentifier : conversationIdentifier, content : content, dateSent : dateSent, sender : sender, recipients : recipients, groupName : groupName, serviceName : serviceName, messageType : messageType, referencedMessage : referencedMessage, reaction : reaction)
    }
    unsafe fn initWithIdentifier_conversationIdentifier_content_dateSent_sender_recipients_groupName_serviceName_messageType_referencedMessage_sticker_reaction_(
        &self,
        identifier: NSString,
        conversationIdentifier: NSString,
        content: NSString,
        dateSent: NSDate,
        sender: INPerson,
        recipients: NSArray,
        groupName: INSpeakableString,
        serviceName: NSString,
        messageType: INMessageType,
        referencedMessage: INMessage,
        sticker: INSticker,
        reaction: INMessageReaction,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithIdentifier : identifier, conversationIdentifier : conversationIdentifier, content : content, dateSent : dateSent, sender : sender, recipients : recipients, groupName : groupName, serviceName : serviceName, messageType : messageType, referencedMessage : referencedMessage, sticker : sticker, reaction : reaction)
    }
    unsafe fn identifier(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, identifier)
    }
    unsafe fn conversationIdentifier(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, conversationIdentifier)
    }
    unsafe fn content(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, content)
    }
    unsafe fn dateSent(&self) -> NSDate
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, dateSent)
    }
    unsafe fn sender(&self) -> INPerson
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sender)
    }
    unsafe fn recipients(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, recipients)
    }
    unsafe fn groupName(&self) -> INSpeakableString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, groupName)
    }
    unsafe fn messageType(&self) -> INMessageType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, messageType)
    }
    unsafe fn serviceName(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, serviceName)
    }
    unsafe fn attachmentFiles(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, attachmentFiles)
    }
    unsafe fn numberOfAttachments(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfAttachments)
    }
    unsafe fn audioMessageFile(&self) -> INFile
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, audioMessageFile)
    }
    unsafe fn linkMetadata(&self) -> INMessageLinkMetadata
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, linkMetadata)
    }
    unsafe fn sticker(&self) -> INSticker
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sticker)
    }
    unsafe fn setSticker_(&self, sticker: INSticker)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSticker : sticker)
    }
    unsafe fn reaction(&self) -> INMessageReaction
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, reaction)
    }
    unsafe fn setReaction_(&self, reaction: INMessageReaction)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setReaction : reaction)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INSendMessageAttachment(pub id);
impl std::ops::Deref for INSendMessageAttachment {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INSendMessageAttachment {}
impl INSendMessageAttachment {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INSendMessageAttachment").unwrap(), alloc) })
    }
}
impl INSObject for INSendMessageAttachment {}
impl PNSObject for INSendMessageAttachment {}
impl std::convert::TryFrom<NSObject> for INSendMessageAttachment {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INSendMessageAttachment, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INSendMessageAttachment").unwrap()) };
        if is_kind_of {
            Ok(INSendMessageAttachment(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INSendMessageAttachment")
        }
    }
}
impl IINSendMessageAttachment for INSendMessageAttachment {}
pub trait IINSendMessageAttachment: Sized + std::ops::Deref {
    unsafe fn audioMessageFile(&self) -> INFile
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, audioMessageFile)
    }
    unsafe fn attachmentWithAudioMessageFile_(audioMessageFile: INFile) -> INSendMessageAttachment
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INSendMessageAttachment").unwrap(), attachmentWithAudioMessageFile : audioMessageFile)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INBalanceAmount(pub id);
impl std::ops::Deref for INBalanceAmount {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INBalanceAmount {}
impl INBalanceAmount {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INBalanceAmount").unwrap(), alloc) })
    }
}
impl PNSCopying for INBalanceAmount {}
impl PNSSecureCoding for INBalanceAmount {}
impl INSObject for INBalanceAmount {}
impl PNSObject for INBalanceAmount {}
impl std::convert::TryFrom<NSObject> for INBalanceAmount {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INBalanceAmount, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INBalanceAmount").unwrap()) };
        if is_kind_of {
            Ok(INBalanceAmount(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INBalanceAmount")
        }
    }
}
impl IINBalanceAmount for INBalanceAmount {}
pub trait IINBalanceAmount: Sized + std::ops::Deref {
    unsafe fn init(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithAmount_balanceType_(
        &self,
        amount: NSDecimalNumber,
        balanceType: INBalanceType,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithAmount : amount, balanceType : balanceType)
    }
    unsafe fn initWithAmount_currencyCode_(
        &self,
        amount: NSDecimalNumber,
        currencyCode: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithAmount : amount, currencyCode : currencyCode)
    }
    unsafe fn amount(&self) -> NSDecimalNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, amount)
    }
    unsafe fn balanceType(&self) -> INBalanceType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, balanceType)
    }
    unsafe fn currencyCode(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, currencyCode)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INPriceRange(pub id);
impl std::ops::Deref for INPriceRange {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INPriceRange {}
impl INPriceRange {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INPriceRange").unwrap(), alloc) })
    }
}
impl PNSCopying for INPriceRange {}
impl PNSSecureCoding for INPriceRange {}
impl INSObject for INPriceRange {}
impl PNSObject for INPriceRange {}
impl std::convert::TryFrom<NSObject> for INPriceRange {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INPriceRange, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INPriceRange").unwrap()) };
        if is_kind_of {
            Ok(INPriceRange(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INPriceRange")
        }
    }
}
impl IINPriceRange for INPriceRange {}
pub trait IINPriceRange: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithRangeBetweenPrice_andPrice_currencyCode_(
        &self,
        firstPrice: NSDecimalNumber,
        secondPrice: NSDecimalNumber,
        currencyCode: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithRangeBetweenPrice : firstPrice, andPrice : secondPrice, currencyCode : currencyCode)
    }
    unsafe fn initWithMaximumPrice_currencyCode_(
        &self,
        maximumPrice: NSDecimalNumber,
        currencyCode: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithMaximumPrice : maximumPrice, currencyCode : currencyCode)
    }
    unsafe fn initWithMinimumPrice_currencyCode_(
        &self,
        minimumPrice: NSDecimalNumber,
        currencyCode: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithMinimumPrice : minimumPrice, currencyCode : currencyCode)
    }
    unsafe fn initWithPrice_currencyCode_(
        &self,
        price: NSDecimalNumber,
        currencyCode: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithPrice : price, currencyCode : currencyCode)
    }
    unsafe fn minimumPrice(&self) -> NSDecimalNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, minimumPrice)
    }
    unsafe fn maximumPrice(&self) -> NSDecimalNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, maximumPrice)
    }
    unsafe fn currencyCode(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, currencyCode)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INRideOption(pub id);
impl std::ops::Deref for INRideOption {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INRideOption {}
impl INRideOption {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INRideOption").unwrap(), alloc) })
    }
}
impl PNSCopying for INRideOption {}
impl PNSSecureCoding for INRideOption {}
impl INSObject for INRideOption {}
impl PNSObject for INRideOption {}
impl std::convert::TryFrom<NSObject> for INRideOption {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INRideOption, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INRideOption").unwrap()) };
        if is_kind_of {
            Ok(INRideOption(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INRideOption")
        }
    }
}
impl IINRideOption for INRideOption {}
pub trait IINRideOption: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithName_estimatedPickupDate_(
        &self,
        name: NSString,
        estimatedPickupDate: NSDate,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithName : name, estimatedPickupDate : estimatedPickupDate)
    }
    unsafe fn initWithCoder_(&self, decoder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : decoder)
    }
    unsafe fn name(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, name)
    }
    unsafe fn setName_(&self, name: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setName : name)
    }
    unsafe fn estimatedPickupDate(&self) -> NSDate
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, estimatedPickupDate)
    }
    unsafe fn setEstimatedPickupDate_(&self, estimatedPickupDate: NSDate)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setEstimatedPickupDate : estimatedPickupDate)
    }
    unsafe fn priceRange(&self) -> INPriceRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, priceRange)
    }
    unsafe fn setPriceRange_(&self, priceRange: INPriceRange)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPriceRange : priceRange)
    }
    unsafe fn usesMeteredFare(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, usesMeteredFare)
    }
    unsafe fn setUsesMeteredFare_(&self, usesMeteredFare: NSNumber)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setUsesMeteredFare : usesMeteredFare)
    }
    unsafe fn disclaimerMessage(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, disclaimerMessage)
    }
    unsafe fn setDisclaimerMessage_(&self, disclaimerMessage: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDisclaimerMessage : disclaimerMessage)
    }
    unsafe fn availablePartySizeOptions(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, availablePartySizeOptions)
    }
    unsafe fn setAvailablePartySizeOptions_(&self, availablePartySizeOptions: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAvailablePartySizeOptions : availablePartySizeOptions)
    }
    unsafe fn availablePartySizeOptionsSelectionPrompt(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, availablePartySizeOptionsSelectionPrompt)
    }
    unsafe fn setAvailablePartySizeOptionsSelectionPrompt_(
        &self,
        availablePartySizeOptionsSelectionPrompt: NSString,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAvailablePartySizeOptionsSelectionPrompt : availablePartySizeOptionsSelectionPrompt)
    }
    unsafe fn specialPricing(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, specialPricing)
    }
    unsafe fn setSpecialPricing_(&self, specialPricing: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSpecialPricing : specialPricing)
    }
    unsafe fn specialPricingBadgeImage(&self) -> INImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, specialPricingBadgeImage)
    }
    unsafe fn setSpecialPricingBadgeImage_(&self, specialPricingBadgeImage: INImage)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSpecialPricingBadgeImage : specialPricingBadgeImage)
    }
    unsafe fn fareLineItems(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, fareLineItems)
    }
    unsafe fn setFareLineItems_(&self, fareLineItems: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFareLineItems : fareLineItems)
    }
    unsafe fn userActivityForBookingInApplication(&self) -> NSUserActivity
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, userActivityForBookingInApplication)
    }
    unsafe fn setUserActivityForBookingInApplication_(
        &self,
        userActivityForBookingInApplication: NSUserActivity,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setUserActivityForBookingInApplication : userActivityForBookingInApplication)
    }
}
impl INRideOption_Deprecated for INRideOption {}
pub trait INRideOption_Deprecated: Sized + std::ops::Deref {
    unsafe fn identifier(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, identifier)
    }
    unsafe fn setIdentifier_(&self, identifier: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setIdentifier : identifier)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INRideStatus(pub id);
impl std::ops::Deref for INRideStatus {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INRideStatus {}
impl INRideStatus {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INRideStatus").unwrap(), alloc) })
    }
}
impl PNSCopying for INRideStatus {}
impl PNSSecureCoding for INRideStatus {}
impl INSObject for INRideStatus {}
impl PNSObject for INRideStatus {}
impl std::convert::TryFrom<NSObject> for INRideStatus {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INRideStatus, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INRideStatus").unwrap()) };
        if is_kind_of {
            Ok(INRideStatus(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INRideStatus")
        }
    }
}
impl IINRideStatus for INRideStatus {}
pub trait IINRideStatus: Sized + std::ops::Deref {
    unsafe fn rideIdentifier(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, rideIdentifier)
    }
    unsafe fn setRideIdentifier_(&self, rideIdentifier: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRideIdentifier : rideIdentifier)
    }
    unsafe fn phase(&self) -> INRidePhase
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, phase)
    }
    unsafe fn setPhase_(&self, phase: INRidePhase)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPhase : phase)
    }
    unsafe fn completionStatus(&self) -> INRideCompletionStatus
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, completionStatus)
    }
    unsafe fn setCompletionStatus_(&self, completionStatus: INRideCompletionStatus)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCompletionStatus : completionStatus)
    }
    unsafe fn vehicle(&self) -> INRideVehicle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, vehicle)
    }
    unsafe fn setVehicle_(&self, vehicle: INRideVehicle)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setVehicle : vehicle)
    }
    unsafe fn driver(&self) -> INRideDriver
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, driver)
    }
    unsafe fn setDriver_(&self, driver: INRideDriver)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDriver : driver)
    }
    unsafe fn estimatedPickupDate(&self) -> NSDate
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, estimatedPickupDate)
    }
    unsafe fn setEstimatedPickupDate_(&self, estimatedPickupDate: NSDate)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setEstimatedPickupDate : estimatedPickupDate)
    }
    unsafe fn estimatedDropOffDate(&self) -> NSDate
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, estimatedDropOffDate)
    }
    unsafe fn setEstimatedDropOffDate_(&self, estimatedDropOffDate: NSDate)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setEstimatedDropOffDate : estimatedDropOffDate)
    }
    unsafe fn estimatedPickupEndDate(&self) -> NSDate
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, estimatedPickupEndDate)
    }
    unsafe fn setEstimatedPickupEndDate_(&self, estimatedPickupEndDate: NSDate)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setEstimatedPickupEndDate : estimatedPickupEndDate)
    }
    unsafe fn scheduledPickupTime(&self) -> INDateComponentsRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, scheduledPickupTime)
    }
    unsafe fn setScheduledPickupTime_(&self, scheduledPickupTime: INDateComponentsRange)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setScheduledPickupTime : scheduledPickupTime)
    }
    unsafe fn pickupLocation(&self) -> CLPlacemark
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, pickupLocation)
    }
    unsafe fn setPickupLocation_(&self, pickupLocation: CLPlacemark)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPickupLocation : pickupLocation)
    }
    unsafe fn waypoints(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, waypoints)
    }
    unsafe fn setWaypoints_(&self, waypoints: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setWaypoints : waypoints)
    }
    unsafe fn dropOffLocation(&self) -> CLPlacemark
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, dropOffLocation)
    }
    unsafe fn setDropOffLocation_(&self, dropOffLocation: CLPlacemark)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDropOffLocation : dropOffLocation)
    }
    unsafe fn rideOption(&self) -> INRideOption
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, rideOption)
    }
    unsafe fn setRideOption_(&self, rideOption: INRideOption)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRideOption : rideOption)
    }
    unsafe fn userActivityForCancelingInApplication(&self) -> NSUserActivity
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, userActivityForCancelingInApplication)
    }
    unsafe fn setUserActivityForCancelingInApplication_(
        &self,
        userActivityForCancelingInApplication: NSUserActivity,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setUserActivityForCancelingInApplication : userActivityForCancelingInApplication)
    }
    unsafe fn additionalActionActivities(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, additionalActionActivities)
    }
    unsafe fn setAdditionalActionActivities_(&self, additionalActionActivities: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAdditionalActionActivities : additionalActionActivities)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INRideDriver(pub id);
impl std::ops::Deref for INRideDriver {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INRideDriver {}
impl INRideDriver {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INRideDriver").unwrap(), alloc) })
    }
}
impl PNSCopying for INRideDriver {}
impl PNSSecureCoding for INRideDriver {}
impl IINPerson for INRideDriver {}
impl From<INRideDriver> for INPerson {
    fn from(child: INRideDriver) -> INPerson {
        INPerson(child.0)
    }
}
impl std::convert::TryFrom<INPerson> for INRideDriver {
    type Error = &'static str;
    fn try_from(parent: INPerson) -> Result<INRideDriver, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INRideDriver").unwrap()) };
        if is_kind_of {
            Ok(INRideDriver(parent.0))
        } else {
            Err("This INPerson cannot be downcasted to INRideDriver")
        }
    }
}
impl INSObject for INRideDriver {}
impl PNSObject for INRideDriver {}
impl IINRideDriver for INRideDriver {}
pub trait IINRideDriver: Sized + std::ops::Deref {
    unsafe fn initWithPhoneNumber_nameComponents_displayName_image_rating_(
        &self,
        phoneNumber: NSString,
        nameComponents: NSPersonNameComponents,
        displayName: NSString,
        image: INImage,
        rating: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithPhoneNumber : phoneNumber, nameComponents : nameComponents, displayName : displayName, image : image, rating : rating)
    }
    unsafe fn rating(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, rating)
    }
    unsafe fn phoneNumber(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, phoneNumber)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INRideVehicle(pub id);
impl std::ops::Deref for INRideVehicle {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INRideVehicle {}
impl INRideVehicle {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INRideVehicle").unwrap(), alloc) })
    }
}
impl PNSCopying for INRideVehicle {}
impl PNSSecureCoding for INRideVehicle {}
impl INSObject for INRideVehicle {}
impl PNSObject for INRideVehicle {}
impl std::convert::TryFrom<NSObject> for INRideVehicle {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INRideVehicle, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INRideVehicle").unwrap()) };
        if is_kind_of {
            Ok(INRideVehicle(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INRideVehicle")
        }
    }
}
impl IINRideVehicle for INRideVehicle {}
pub trait IINRideVehicle: Sized + std::ops::Deref {
    unsafe fn location(&self) -> CLLocation
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, location)
    }
    unsafe fn setLocation_(&self, location: CLLocation)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLocation : location)
    }
    unsafe fn registrationPlate(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, registrationPlate)
    }
    unsafe fn setRegistrationPlate_(&self, registrationPlate: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRegistrationPlate : registrationPlate)
    }
    unsafe fn manufacturer(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, manufacturer)
    }
    unsafe fn setManufacturer_(&self, manufacturer: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setManufacturer : manufacturer)
    }
    unsafe fn model(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, model)
    }
    unsafe fn setModel_(&self, model: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setModel : model)
    }
    unsafe fn mapAnnotationImage(&self) -> INImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, mapAnnotationImage)
    }
    unsafe fn setMapAnnotationImage_(&self, mapAnnotationImage: INImage)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMapAnnotationImage : mapAnnotationImage)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INRideFareLineItem(pub id);
impl std::ops::Deref for INRideFareLineItem {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INRideFareLineItem {}
impl INRideFareLineItem {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INRideFareLineItem").unwrap(), alloc) })
    }
}
impl PNSCopying for INRideFareLineItem {}
impl PNSSecureCoding for INRideFareLineItem {}
impl INSObject for INRideFareLineItem {}
impl PNSObject for INRideFareLineItem {}
impl std::convert::TryFrom<NSObject> for INRideFareLineItem {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INRideFareLineItem, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INRideFareLineItem").unwrap()) };
        if is_kind_of {
            Ok(INRideFareLineItem(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INRideFareLineItem")
        }
    }
}
impl IINRideFareLineItem for INRideFareLineItem {}
pub trait IINRideFareLineItem: Sized + std::ops::Deref {
    unsafe fn initWithTitle_price_currencyCode_(
        &self,
        title: NSString,
        price: NSDecimalNumber,
        currencyCode: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithTitle : title, price : price, currencyCode : currencyCode)
    }
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn title(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, title)
    }
    unsafe fn price(&self) -> NSDecimalNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, price)
    }
    unsafe fn currencyCode(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, currencyCode)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INRidePartySizeOption(pub id);
impl std::ops::Deref for INRidePartySizeOption {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INRidePartySizeOption {}
impl INRidePartySizeOption {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INRidePartySizeOption").unwrap(), alloc) })
    }
}
impl PNSCopying for INRidePartySizeOption {}
impl PNSSecureCoding for INRidePartySizeOption {}
impl INSObject for INRidePartySizeOption {}
impl PNSObject for INRidePartySizeOption {}
impl std::convert::TryFrom<NSObject> for INRidePartySizeOption {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INRidePartySizeOption, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INRidePartySizeOption").unwrap()) };
        if is_kind_of {
            Ok(INRidePartySizeOption(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INRidePartySizeOption")
        }
    }
}
impl IINRidePartySizeOption for INRidePartySizeOption {}
pub trait IINRidePartySizeOption: Sized + std::ops::Deref {
    unsafe fn initWithPartySizeRange_sizeDescription_priceRange_(
        &self,
        partySizeRange: NSRange,
        sizeDescription: NSString,
        priceRange: INPriceRange,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithPartySizeRange : partySizeRange, sizeDescription : sizeDescription, priceRange : priceRange)
    }
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn partySizeRange(&self) -> NSRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, partySizeRange)
    }
    unsafe fn sizeDescription(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sizeDescription)
    }
    unsafe fn priceRange(&self) -> INPriceRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, priceRange)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INRideCompletionStatus(pub id);
impl std::ops::Deref for INRideCompletionStatus {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INRideCompletionStatus {}
impl INRideCompletionStatus {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INRideCompletionStatus").unwrap(), alloc) })
    }
}
impl PNSCopying for INRideCompletionStatus {}
impl PNSSecureCoding for INRideCompletionStatus {}
impl INSObject for INRideCompletionStatus {}
impl PNSObject for INRideCompletionStatus {}
impl std::convert::TryFrom<NSObject> for INRideCompletionStatus {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INRideCompletionStatus, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INRideCompletionStatus").unwrap()) };
        if is_kind_of {
            Ok(INRideCompletionStatus(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INRideCompletionStatus")
        }
    }
}
impl IINRideCompletionStatus for INRideCompletionStatus {}
pub trait IINRideCompletionStatus: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn completionUserActivity(&self) -> NSUserActivity
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, completionUserActivity)
    }
    unsafe fn setCompletionUserActivity_(&self, completionUserActivity: NSUserActivity)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCompletionUserActivity : completionUserActivity)
    }
    unsafe fn isCompleted(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isCompleted)
    }
    unsafe fn isCanceled(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isCanceled)
    }
    unsafe fn isMissedPickup(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isMissedPickup)
    }
    unsafe fn paymentAmount(&self) -> INCurrencyAmount
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, paymentAmount)
    }
    unsafe fn feedbackType(&self) -> INRideFeedbackTypeOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, feedbackType)
    }
    unsafe fn isOutstanding(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isOutstanding)
    }
    unsafe fn defaultTippingOptions(&self) -> NSSet
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, defaultTippingOptions)
    }
    unsafe fn setDefaultTippingOptions_(&self, defaultTippingOptions: NSSet)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDefaultTippingOptions : defaultTippingOptions)
    }
    unsafe fn completed() -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INRideCompletionStatus").unwrap(), completed)
    }
    unsafe fn completedWithSettledPaymentAmount_(
        settledPaymentAmount: INCurrencyAmount,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INRideCompletionStatus").unwrap(), completedWithSettledPaymentAmount : settledPaymentAmount)
    }
    unsafe fn completedWithOutstandingPaymentAmount_(
        outstandingPaymentAmount: INCurrencyAmount,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INRideCompletionStatus").unwrap(), completedWithOutstandingPaymentAmount : outstandingPaymentAmount)
    }
    unsafe fn completedWithOutstandingFeedbackType_(
        feedbackType: INRideFeedbackTypeOptions,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INRideCompletionStatus").unwrap(), completedWithOutstandingFeedbackType : feedbackType)
    }
    unsafe fn canceledByService() -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INRideCompletionStatus").unwrap(), canceledByService)
    }
    unsafe fn canceledByUser() -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INRideCompletionStatus").unwrap(), canceledByUser)
    }
    unsafe fn canceledMissedPickup() -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INRideCompletionStatus").unwrap(), canceledMissedPickup)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INReservation(pub id);
impl std::ops::Deref for INReservation {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INReservation {}
impl INReservation {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INReservation").unwrap(), alloc) })
    }
}
impl PNSCopying for INReservation {}
impl PNSSecureCoding for INReservation {}
impl INSObject for INReservation {}
impl PNSObject for INReservation {}
impl std::convert::TryFrom<NSObject> for INReservation {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INReservation, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INReservation").unwrap()) };
        if is_kind_of {
            Ok(INReservation(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INReservation")
        }
    }
}
impl IINReservation for INReservation {}
pub trait IINReservation: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn itemReference(&self) -> INSpeakableString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, itemReference)
    }
    unsafe fn reservationNumber(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, reservationNumber)
    }
    unsafe fn bookingTime(&self) -> NSDate
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, bookingTime)
    }
    unsafe fn reservationStatus(&self) -> INReservationStatus
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, reservationStatus)
    }
    unsafe fn reservationHolderName(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, reservationHolderName)
    }
    unsafe fn actions(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, actions)
    }
    unsafe fn URL(&self) -> NSURL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, URL)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INReservationAction(pub id);
impl std::ops::Deref for INReservationAction {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INReservationAction {}
impl INReservationAction {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INReservationAction").unwrap(), alloc) })
    }
}
impl PNSCopying for INReservationAction {}
impl PNSSecureCoding for INReservationAction {}
impl INSObject for INReservationAction {}
impl PNSObject for INReservationAction {}
impl std::convert::TryFrom<NSObject> for INReservationAction {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INReservationAction, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INReservationAction").unwrap()) };
        if is_kind_of {
            Ok(INReservationAction(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INReservationAction")
        }
    }
}
impl IINReservationAction for INReservationAction {}
pub trait IINReservationAction: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithType_validDuration_userActivity_(
        &self,
        type_: INReservationActionType,
        validDuration: INDateComponentsRange,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithType : type_, validDuration : validDuration, userActivity : userActivity)
    }
    unsafe fn type_(&self) -> INReservationActionType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, type)
    }
    unsafe fn validDuration(&self) -> INDateComponentsRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, validDuration)
    }
    unsafe fn userActivity(&self) -> NSUserActivity
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, userActivity)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INFlightReservation(pub id);
impl std::ops::Deref for INFlightReservation {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INFlightReservation {}
impl INFlightReservation {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INFlightReservation").unwrap(), alloc) })
    }
}
impl PNSCopying for INFlightReservation {}
impl PNSSecureCoding for INFlightReservation {}
impl IINReservation for INFlightReservation {}
impl From<INFlightReservation> for INReservation {
    fn from(child: INFlightReservation) -> INReservation {
        INReservation(child.0)
    }
}
impl std::convert::TryFrom<INReservation> for INFlightReservation {
    type Error = &'static str;
    fn try_from(parent: INReservation) -> Result<INFlightReservation, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INFlightReservation").unwrap()) };
        if is_kind_of {
            Ok(INFlightReservation(parent.0))
        } else {
            Err("This INReservation cannot be downcasted to INFlightReservation")
        }
    }
}
impl INSObject for INFlightReservation {}
impl PNSObject for INFlightReservation {}
impl IINFlightReservation for INFlightReservation {}
pub trait IINFlightReservation: Sized + std::ops::Deref {
    unsafe fn initWithItemReference_reservationNumber_bookingTime_reservationStatus_reservationHolderName_actions_URL_reservedSeat_flight_(
        &self,
        itemReference: INSpeakableString,
        reservationNumber: NSString,
        bookingTime: NSDate,
        reservationStatus: INReservationStatus,
        reservationHolderName: NSString,
        actions: NSArray,
        URL: NSURL,
        reservedSeat: INSeat,
        flight: INFlight,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithItemReference : itemReference, reservationNumber : reservationNumber, bookingTime : bookingTime, reservationStatus : reservationStatus, reservationHolderName : reservationHolderName, actions : actions, URL : URL, reservedSeat : reservedSeat, flight : flight)
    }
    unsafe fn initWithItemReference_reservationNumber_bookingTime_reservationStatus_reservationHolderName_actions_reservedSeat_flight_(
        &self,
        itemReference: INSpeakableString,
        reservationNumber: NSString,
        bookingTime: NSDate,
        reservationStatus: INReservationStatus,
        reservationHolderName: NSString,
        actions: NSArray,
        reservedSeat: INSeat,
        flight: INFlight,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithItemReference : itemReference, reservationNumber : reservationNumber, bookingTime : bookingTime, reservationStatus : reservationStatus, reservationHolderName : reservationHolderName, actions : actions, reservedSeat : reservedSeat, flight : flight)
    }
    unsafe fn reservedSeat(&self) -> INSeat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, reservedSeat)
    }
    unsafe fn flight(&self) -> INFlight
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, flight)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INLodgingReservation(pub id);
impl std::ops::Deref for INLodgingReservation {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INLodgingReservation {}
impl INLodgingReservation {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INLodgingReservation").unwrap(), alloc) })
    }
}
impl PNSCopying for INLodgingReservation {}
impl PNSSecureCoding for INLodgingReservation {}
impl IINReservation for INLodgingReservation {}
impl std::convert::TryFrom<INReservation> for INLodgingReservation {
    type Error = &'static str;
    fn try_from(parent: INReservation) -> Result<INLodgingReservation, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INLodgingReservation").unwrap()) };
        if is_kind_of {
            Ok(INLodgingReservation(parent.0))
        } else {
            Err("This INReservation cannot be downcasted to INLodgingReservation")
        }
    }
}
impl INSObject for INLodgingReservation {}
impl PNSObject for INLodgingReservation {}
impl IINLodgingReservation for INLodgingReservation {}
pub trait IINLodgingReservation: Sized + std::ops::Deref {
    unsafe fn initWithItemReference_reservationNumber_bookingTime_reservationStatus_reservationHolderName_actions_URL_lodgingBusinessLocation_reservationDuration_numberOfAdults_numberOfChildren_(
        &self,
        itemReference: INSpeakableString,
        reservationNumber: NSString,
        bookingTime: NSDate,
        reservationStatus: INReservationStatus,
        reservationHolderName: NSString,
        actions: NSArray,
        URL: NSURL,
        lodgingBusinessLocation: CLPlacemark,
        reservationDuration: INDateComponentsRange,
        numberOfAdults: NSNumber,
        numberOfChildren: NSNumber,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithItemReference : itemReference, reservationNumber : reservationNumber, bookingTime : bookingTime, reservationStatus : reservationStatus, reservationHolderName : reservationHolderName, actions : actions, URL : URL, lodgingBusinessLocation : lodgingBusinessLocation, reservationDuration : reservationDuration, numberOfAdults : numberOfAdults, numberOfChildren : numberOfChildren)
    }
    unsafe fn initWithItemReference_reservationNumber_bookingTime_reservationStatus_reservationHolderName_actions_lodgingBusinessLocation_reservationDuration_numberOfAdults_numberOfChildren_(
        &self,
        itemReference: INSpeakableString,
        reservationNumber: NSString,
        bookingTime: NSDate,
        reservationStatus: INReservationStatus,
        reservationHolderName: NSString,
        actions: NSArray,
        lodgingBusinessLocation: CLPlacemark,
        reservationDuration: INDateComponentsRange,
        numberOfAdults: NSNumber,
        numberOfChildren: NSNumber,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithItemReference : itemReference, reservationNumber : reservationNumber, bookingTime : bookingTime, reservationStatus : reservationStatus, reservationHolderName : reservationHolderName, actions : actions, lodgingBusinessLocation : lodgingBusinessLocation, reservationDuration : reservationDuration, numberOfAdults : numberOfAdults, numberOfChildren : numberOfChildren)
    }
    unsafe fn lodgingBusinessLocation(&self) -> CLPlacemark
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, lodgingBusinessLocation)
    }
    unsafe fn reservationDuration(&self) -> INDateComponentsRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, reservationDuration)
    }
    unsafe fn numberOfAdults(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfAdults)
    }
    unsafe fn numberOfChildren(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfChildren)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INRentalCarReservation(pub id);
impl std::ops::Deref for INRentalCarReservation {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INRentalCarReservation {}
impl INRentalCarReservation {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INRentalCarReservation").unwrap(), alloc) })
    }
}
impl PNSCopying for INRentalCarReservation {}
impl PNSSecureCoding for INRentalCarReservation {}
impl IINReservation for INRentalCarReservation {}
impl std::convert::TryFrom<INReservation> for INRentalCarReservation {
    type Error = &'static str;
    fn try_from(parent: INReservation) -> Result<INRentalCarReservation, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INRentalCarReservation").unwrap()) };
        if is_kind_of {
            Ok(INRentalCarReservation(parent.0))
        } else {
            Err("This INReservation cannot be downcasted to INRentalCarReservation")
        }
    }
}
impl INSObject for INRentalCarReservation {}
impl PNSObject for INRentalCarReservation {}
impl IINRentalCarReservation for INRentalCarReservation {}
pub trait IINRentalCarReservation: Sized + std::ops::Deref {
    unsafe fn initWithItemReference_reservationNumber_bookingTime_reservationStatus_reservationHolderName_actions_URL_rentalCar_rentalDuration_pickupLocation_dropOffLocation_(
        &self,
        itemReference: INSpeakableString,
        reservationNumber: NSString,
        bookingTime: NSDate,
        reservationStatus: INReservationStatus,
        reservationHolderName: NSString,
        actions: NSArray,
        URL: NSURL,
        rentalCar: INRentalCar,
        rentalDuration: INDateComponentsRange,
        pickupLocation: CLPlacemark,
        dropOffLocation: CLPlacemark,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithItemReference : itemReference, reservationNumber : reservationNumber, bookingTime : bookingTime, reservationStatus : reservationStatus, reservationHolderName : reservationHolderName, actions : actions, URL : URL, rentalCar : rentalCar, rentalDuration : rentalDuration, pickupLocation : pickupLocation, dropOffLocation : dropOffLocation)
    }
    unsafe fn initWithItemReference_reservationNumber_bookingTime_reservationStatus_reservationHolderName_actions_rentalCar_rentalDuration_pickupLocation_dropOffLocation_(
        &self,
        itemReference: INSpeakableString,
        reservationNumber: NSString,
        bookingTime: NSDate,
        reservationStatus: INReservationStatus,
        reservationHolderName: NSString,
        actions: NSArray,
        rentalCar: INRentalCar,
        rentalDuration: INDateComponentsRange,
        pickupLocation: CLPlacemark,
        dropOffLocation: CLPlacemark,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithItemReference : itemReference, reservationNumber : reservationNumber, bookingTime : bookingTime, reservationStatus : reservationStatus, reservationHolderName : reservationHolderName, actions : actions, rentalCar : rentalCar, rentalDuration : rentalDuration, pickupLocation : pickupLocation, dropOffLocation : dropOffLocation)
    }
    unsafe fn rentalCar(&self) -> INRentalCar
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, rentalCar)
    }
    unsafe fn rentalDuration(&self) -> INDateComponentsRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, rentalDuration)
    }
    unsafe fn pickupLocation(&self) -> CLPlacemark
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, pickupLocation)
    }
    unsafe fn dropOffLocation(&self) -> CLPlacemark
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, dropOffLocation)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INRestaurantReservation(pub id);
impl std::ops::Deref for INRestaurantReservation {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INRestaurantReservation {}
impl INRestaurantReservation {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INRestaurantReservation").unwrap(), alloc) })
    }
}
impl PNSCopying for INRestaurantReservation {}
impl PNSSecureCoding for INRestaurantReservation {}
impl IINReservation for INRestaurantReservation {}
impl std::convert::TryFrom<INReservation> for INRestaurantReservation {
    type Error = &'static str;
    fn try_from(parent: INReservation) -> Result<INRestaurantReservation, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INRestaurantReservation").unwrap()) };
        if is_kind_of {
            Ok(INRestaurantReservation(parent.0))
        } else {
            Err("This INReservation cannot be downcasted to INRestaurantReservation")
        }
    }
}
impl INSObject for INRestaurantReservation {}
impl PNSObject for INRestaurantReservation {}
impl IINRestaurantReservation for INRestaurantReservation {}
pub trait IINRestaurantReservation: Sized + std::ops::Deref {
    unsafe fn initWithItemReference_reservationNumber_bookingTime_reservationStatus_reservationHolderName_actions_URL_reservationDuration_partySize_restaurantLocation_(
        &self,
        itemReference: INSpeakableString,
        reservationNumber: NSString,
        bookingTime: NSDate,
        reservationStatus: INReservationStatus,
        reservationHolderName: NSString,
        actions: NSArray,
        URL: NSURL,
        reservationDuration: INDateComponentsRange,
        partySize: NSNumber,
        restaurantLocation: CLPlacemark,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithItemReference : itemReference, reservationNumber : reservationNumber, bookingTime : bookingTime, reservationStatus : reservationStatus, reservationHolderName : reservationHolderName, actions : actions, URL : URL, reservationDuration : reservationDuration, partySize : partySize, restaurantLocation : restaurantLocation)
    }
    unsafe fn initWithItemReference_reservationNumber_bookingTime_reservationStatus_reservationHolderName_actions_reservationDuration_partySize_restaurantLocation_(
        &self,
        itemReference: INSpeakableString,
        reservationNumber: NSString,
        bookingTime: NSDate,
        reservationStatus: INReservationStatus,
        reservationHolderName: NSString,
        actions: NSArray,
        reservationDuration: INDateComponentsRange,
        partySize: NSNumber,
        restaurantLocation: CLPlacemark,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithItemReference : itemReference, reservationNumber : reservationNumber, bookingTime : bookingTime, reservationStatus : reservationStatus, reservationHolderName : reservationHolderName, actions : actions, reservationDuration : reservationDuration, partySize : partySize, restaurantLocation : restaurantLocation)
    }
    unsafe fn reservationDuration(&self) -> INDateComponentsRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, reservationDuration)
    }
    unsafe fn partySize(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, partySize)
    }
    unsafe fn restaurantLocation(&self) -> CLPlacemark
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, restaurantLocation)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INTicketedEventReservation(pub id);
impl std::ops::Deref for INTicketedEventReservation {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INTicketedEventReservation {}
impl INTicketedEventReservation {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INTicketedEventReservation").unwrap(), alloc) })
    }
}
impl PNSCopying for INTicketedEventReservation {}
impl PNSSecureCoding for INTicketedEventReservation {}
impl IINReservation for INTicketedEventReservation {}
impl std::convert::TryFrom<INReservation> for INTicketedEventReservation {
    type Error = &'static str;
    fn try_from(parent: INReservation) -> Result<INTicketedEventReservation, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INTicketedEventReservation").unwrap()) };
        if is_kind_of {
            Ok(INTicketedEventReservation(parent.0))
        } else {
            Err("This INReservation cannot be downcasted to INTicketedEventReservation")
        }
    }
}
impl INSObject for INTicketedEventReservation {}
impl PNSObject for INTicketedEventReservation {}
impl IINTicketedEventReservation for INTicketedEventReservation {}
pub trait IINTicketedEventReservation: Sized + std::ops::Deref {
    unsafe fn initWithItemReference_reservationNumber_bookingTime_reservationStatus_reservationHolderName_actions_URL_reservedSeat_event_(
        &self,
        itemReference: INSpeakableString,
        reservationNumber: NSString,
        bookingTime: NSDate,
        reservationStatus: INReservationStatus,
        reservationHolderName: NSString,
        actions: NSArray,
        URL: NSURL,
        reservedSeat: INSeat,
        event: INTicketedEvent,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithItemReference : itemReference, reservationNumber : reservationNumber, bookingTime : bookingTime, reservationStatus : reservationStatus, reservationHolderName : reservationHolderName, actions : actions, URL : URL, reservedSeat : reservedSeat, event : event)
    }
    unsafe fn initWithItemReference_reservationNumber_bookingTime_reservationStatus_reservationHolderName_actions_reservedSeat_event_(
        &self,
        itemReference: INSpeakableString,
        reservationNumber: NSString,
        bookingTime: NSDate,
        reservationStatus: INReservationStatus,
        reservationHolderName: NSString,
        actions: NSArray,
        reservedSeat: INSeat,
        event: INTicketedEvent,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithItemReference : itemReference, reservationNumber : reservationNumber, bookingTime : bookingTime, reservationStatus : reservationStatus, reservationHolderName : reservationHolderName, actions : actions, reservedSeat : reservedSeat, event : event)
    }
    unsafe fn event(&self) -> INTicketedEvent
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, event)
    }
    unsafe fn reservedSeat(&self) -> INSeat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, reservedSeat)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INTrainReservation(pub id);
impl std::ops::Deref for INTrainReservation {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INTrainReservation {}
impl INTrainReservation {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INTrainReservation").unwrap(), alloc) })
    }
}
impl PNSCopying for INTrainReservation {}
impl PNSSecureCoding for INTrainReservation {}
impl IINReservation for INTrainReservation {}
impl std::convert::TryFrom<INReservation> for INTrainReservation {
    type Error = &'static str;
    fn try_from(parent: INReservation) -> Result<INTrainReservation, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INTrainReservation").unwrap()) };
        if is_kind_of {
            Ok(INTrainReservation(parent.0))
        } else {
            Err("This INReservation cannot be downcasted to INTrainReservation")
        }
    }
}
impl INSObject for INTrainReservation {}
impl PNSObject for INTrainReservation {}
impl IINTrainReservation for INTrainReservation {}
pub trait IINTrainReservation: Sized + std::ops::Deref {
    unsafe fn initWithItemReference_reservationNumber_bookingTime_reservationStatus_reservationHolderName_actions_URL_reservedSeat_trainTrip_(
        &self,
        itemReference: INSpeakableString,
        reservationNumber: NSString,
        bookingTime: NSDate,
        reservationStatus: INReservationStatus,
        reservationHolderName: NSString,
        actions: NSArray,
        URL: NSURL,
        reservedSeat: INSeat,
        trainTrip: INTrainTrip,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithItemReference : itemReference, reservationNumber : reservationNumber, bookingTime : bookingTime, reservationStatus : reservationStatus, reservationHolderName : reservationHolderName, actions : actions, URL : URL, reservedSeat : reservedSeat, trainTrip : trainTrip)
    }
    unsafe fn initWithItemReference_reservationNumber_bookingTime_reservationStatus_reservationHolderName_actions_reservedSeat_trainTrip_(
        &self,
        itemReference: INSpeakableString,
        reservationNumber: NSString,
        bookingTime: NSDate,
        reservationStatus: INReservationStatus,
        reservationHolderName: NSString,
        actions: NSArray,
        reservedSeat: INSeat,
        trainTrip: INTrainTrip,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithItemReference : itemReference, reservationNumber : reservationNumber, bookingTime : bookingTime, reservationStatus : reservationStatus, reservationHolderName : reservationHolderName, actions : actions, reservedSeat : reservedSeat, trainTrip : trainTrip)
    }
    unsafe fn reservedSeat(&self) -> INSeat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, reservedSeat)
    }
    unsafe fn trainTrip(&self) -> INTrainTrip
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, trainTrip)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INBusReservation(pub id);
impl std::ops::Deref for INBusReservation {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INBusReservation {}
impl INBusReservation {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INBusReservation").unwrap(), alloc) })
    }
}
impl PNSCopying for INBusReservation {}
impl PNSSecureCoding for INBusReservation {}
impl IINReservation for INBusReservation {}
impl std::convert::TryFrom<INReservation> for INBusReservation {
    type Error = &'static str;
    fn try_from(parent: INReservation) -> Result<INBusReservation, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INBusReservation").unwrap()) };
        if is_kind_of {
            Ok(INBusReservation(parent.0))
        } else {
            Err("This INReservation cannot be downcasted to INBusReservation")
        }
    }
}
impl INSObject for INBusReservation {}
impl PNSObject for INBusReservation {}
impl IINBusReservation for INBusReservation {}
pub trait IINBusReservation: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithItemReference_reservationNumber_bookingTime_reservationStatus_reservationHolderName_actions_URL_reservedSeat_busTrip_(
        &self,
        itemReference: INSpeakableString,
        reservationNumber: NSString,
        bookingTime: NSDate,
        reservationStatus: INReservationStatus,
        reservationHolderName: NSString,
        actions: NSArray,
        URL: NSURL,
        reservedSeat: INSeat,
        busTrip: INBusTrip,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithItemReference : itemReference, reservationNumber : reservationNumber, bookingTime : bookingTime, reservationStatus : reservationStatus, reservationHolderName : reservationHolderName, actions : actions, URL : URL, reservedSeat : reservedSeat, busTrip : busTrip)
    }
    unsafe fn reservedSeat(&self) -> INSeat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, reservedSeat)
    }
    unsafe fn busTrip(&self) -> INBusTrip
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, busTrip)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INBoatReservation(pub id);
impl std::ops::Deref for INBoatReservation {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INBoatReservation {}
impl INBoatReservation {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INBoatReservation").unwrap(), alloc) })
    }
}
impl PNSCopying for INBoatReservation {}
impl PNSSecureCoding for INBoatReservation {}
impl IINReservation for INBoatReservation {}
impl std::convert::TryFrom<INReservation> for INBoatReservation {
    type Error = &'static str;
    fn try_from(parent: INReservation) -> Result<INBoatReservation, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INBoatReservation").unwrap()) };
        if is_kind_of {
            Ok(INBoatReservation(parent.0))
        } else {
            Err("This INReservation cannot be downcasted to INBoatReservation")
        }
    }
}
impl INSObject for INBoatReservation {}
impl PNSObject for INBoatReservation {}
impl IINBoatReservation for INBoatReservation {}
pub trait IINBoatReservation: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithItemReference_reservationNumber_bookingTime_reservationStatus_reservationHolderName_actions_URL_reservedSeat_boatTrip_(
        &self,
        itemReference: INSpeakableString,
        reservationNumber: NSString,
        bookingTime: NSDate,
        reservationStatus: INReservationStatus,
        reservationHolderName: NSString,
        actions: NSArray,
        URL: NSURL,
        reservedSeat: INSeat,
        boatTrip: INBoatTrip,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithItemReference : itemReference, reservationNumber : reservationNumber, bookingTime : bookingTime, reservationStatus : reservationStatus, reservationHolderName : reservationHolderName, actions : actions, URL : URL, reservedSeat : reservedSeat, boatTrip : boatTrip)
    }
    unsafe fn reservedSeat(&self) -> INSeat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, reservedSeat)
    }
    unsafe fn boatTrip(&self) -> INBoatTrip
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, boatTrip)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INRestaurantGuest(pub id);
impl std::ops::Deref for INRestaurantGuest {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INRestaurantGuest {}
impl INRestaurantGuest {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INRestaurantGuest").unwrap(), alloc) })
    }
}
impl IINPerson for INRestaurantGuest {}
impl PNSCopying for INRestaurantGuest {}
impl PNSSecureCoding for INRestaurantGuest {}
impl std::convert::TryFrom<INPerson> for INRestaurantGuest {
    type Error = &'static str;
    fn try_from(parent: INPerson) -> Result<INRestaurantGuest, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INRestaurantGuest").unwrap()) };
        if is_kind_of {
            Ok(INRestaurantGuest(parent.0))
        } else {
            Err("This INPerson cannot be downcasted to INRestaurantGuest")
        }
    }
}
impl INSObject for INRestaurantGuest {}
impl PNSObject for INRestaurantGuest {}
impl IINRestaurantGuest for INRestaurantGuest {}
pub trait IINRestaurantGuest: Sized + std::ops::Deref {
    unsafe fn initWithNameComponents_phoneNumber_emailAddress_(
        &self,
        nameComponents: NSPersonNameComponents,
        phoneNumber: NSString,
        emailAddress: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithNameComponents : nameComponents, phoneNumber : phoneNumber, emailAddress : emailAddress)
    }
    unsafe fn phoneNumber(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, phoneNumber)
    }
    unsafe fn setPhoneNumber_(&self, phoneNumber: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPhoneNumber : phoneNumber)
    }
    unsafe fn emailAddress(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, emailAddress)
    }
    unsafe fn setEmailAddress_(&self, emailAddress: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setEmailAddress : emailAddress)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INTermsAndConditions(pub id);
impl std::ops::Deref for INTermsAndConditions {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INTermsAndConditions {}
impl INTermsAndConditions {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INTermsAndConditions").unwrap(), alloc) })
    }
}
impl PNSSecureCoding for INTermsAndConditions {}
impl PNSCopying for INTermsAndConditions {}
impl INSObject for INTermsAndConditions {}
impl PNSObject for INTermsAndConditions {}
impl std::convert::TryFrom<NSObject> for INTermsAndConditions {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INTermsAndConditions, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INTermsAndConditions").unwrap()) };
        if is_kind_of {
            Ok(INTermsAndConditions(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INTermsAndConditions")
        }
    }
}
impl IINTermsAndConditions for INTermsAndConditions {}
pub trait IINTermsAndConditions: Sized + std::ops::Deref {
    unsafe fn initWithLocalizedTermsAndConditionsText_privacyPolicyURL_termsAndConditionsURL_(
        &self,
        localizedTermsAndConditionsText: NSString,
        privacyPolicyURL: NSURL,
        termsAndConditionsURL: NSURL,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithLocalizedTermsAndConditionsText : localizedTermsAndConditionsText, privacyPolicyURL : privacyPolicyURL, termsAndConditionsURL : termsAndConditionsURL)
    }
    unsafe fn localizedTermsAndConditionsText(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, localizedTermsAndConditionsText)
    }
    unsafe fn privacyPolicyURL(&self) -> NSURL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, privacyPolicyURL)
    }
    unsafe fn termsAndConditionsURL(&self) -> NSURL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, termsAndConditionsURL)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INRestaurantGuestDisplayPreferences(pub id);
impl std::ops::Deref for INRestaurantGuestDisplayPreferences {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INRestaurantGuestDisplayPreferences {}
impl INRestaurantGuestDisplayPreferences {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INRestaurantGuestDisplayPreferences").unwrap(), alloc) })
    }
}
impl PNSSecureCoding for INRestaurantGuestDisplayPreferences {}
impl PNSCopying for INRestaurantGuestDisplayPreferences {}
impl INSObject for INRestaurantGuestDisplayPreferences {}
impl PNSObject for INRestaurantGuestDisplayPreferences {}
impl std::convert::TryFrom<NSObject> for INRestaurantGuestDisplayPreferences {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INRestaurantGuestDisplayPreferences, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INRestaurantGuestDisplayPreferences").unwrap())
        };
        if is_kind_of {
            Ok(INRestaurantGuestDisplayPreferences(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INRestaurantGuestDisplayPreferences")
        }
    }
}
impl IINRestaurantGuestDisplayPreferences for INRestaurantGuestDisplayPreferences {}
pub trait IINRestaurantGuestDisplayPreferences: Sized + std::ops::Deref {
    unsafe fn nameFieldFirstNameOptional(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, nameFieldFirstNameOptional)
    }
    unsafe fn setNameFieldFirstNameOptional_(&self, nameFieldFirstNameOptional: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setNameFieldFirstNameOptional : nameFieldFirstNameOptional)
    }
    unsafe fn nameFieldLastNameOptional(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, nameFieldLastNameOptional)
    }
    unsafe fn setNameFieldLastNameOptional_(&self, nameFieldLastNameOptional: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setNameFieldLastNameOptional : nameFieldLastNameOptional)
    }
    unsafe fn nameFieldShouldBeDisplayed(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, nameFieldShouldBeDisplayed)
    }
    unsafe fn setNameFieldShouldBeDisplayed_(&self, nameFieldShouldBeDisplayed: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setNameFieldShouldBeDisplayed : nameFieldShouldBeDisplayed)
    }
    unsafe fn emailAddressFieldShouldBeDisplayed(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, emailAddressFieldShouldBeDisplayed)
    }
    unsafe fn setEmailAddressFieldShouldBeDisplayed_(
        &self,
        emailAddressFieldShouldBeDisplayed: BOOL,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setEmailAddressFieldShouldBeDisplayed : emailAddressFieldShouldBeDisplayed)
    }
    unsafe fn phoneNumberFieldShouldBeDisplayed(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, phoneNumberFieldShouldBeDisplayed)
    }
    unsafe fn setPhoneNumberFieldShouldBeDisplayed_(&self, phoneNumberFieldShouldBeDisplayed: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPhoneNumberFieldShouldBeDisplayed : phoneNumberFieldShouldBeDisplayed)
    }
    unsafe fn nameEditable(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, nameEditable)
    }
    unsafe fn setNameEditable_(&self, nameEditable: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setNameEditable : nameEditable)
    }
    unsafe fn emailAddressEditable(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, emailAddressEditable)
    }
    unsafe fn setEmailAddressEditable_(&self, emailAddressEditable: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setEmailAddressEditable : emailAddressEditable)
    }
    unsafe fn phoneNumberEditable(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, phoneNumberEditable)
    }
    unsafe fn setPhoneNumberEditable_(&self, phoneNumberEditable: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPhoneNumberEditable : phoneNumberEditable)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INRestaurant(pub id);
impl std::ops::Deref for INRestaurant {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INRestaurant {}
impl INRestaurant {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INRestaurant").unwrap(), alloc) })
    }
}
impl PNSSecureCoding for INRestaurant {}
impl PNSCopying for INRestaurant {}
impl INSObject for INRestaurant {}
impl PNSObject for INRestaurant {}
impl std::convert::TryFrom<NSObject> for INRestaurant {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INRestaurant, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INRestaurant").unwrap()) };
        if is_kind_of {
            Ok(INRestaurant(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INRestaurant")
        }
    }
}
impl IINRestaurant for INRestaurant {}
pub trait IINRestaurant: Sized + std::ops::Deref {
    unsafe fn initWithLocation_name_vendorIdentifier_restaurantIdentifier_(
        &self,
        location: CLLocation,
        name: NSString,
        vendorIdentifier: NSString,
        restaurantIdentifier: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithLocation : location, name : name, vendorIdentifier : vendorIdentifier, restaurantIdentifier : restaurantIdentifier)
    }
    unsafe fn location(&self) -> CLLocation
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, location)
    }
    unsafe fn setLocation_(&self, location: CLLocation)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLocation : location)
    }
    unsafe fn name(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, name)
    }
    unsafe fn setName_(&self, name: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setName : name)
    }
    unsafe fn vendorIdentifier(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, vendorIdentifier)
    }
    unsafe fn setVendorIdentifier_(&self, vendorIdentifier: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setVendorIdentifier : vendorIdentifier)
    }
    unsafe fn restaurantIdentifier(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, restaurantIdentifier)
    }
    unsafe fn setRestaurantIdentifier_(&self, restaurantIdentifier: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRestaurantIdentifier : restaurantIdentifier)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INRestaurantOffer(pub id);
impl std::ops::Deref for INRestaurantOffer {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INRestaurantOffer {}
impl INRestaurantOffer {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INRestaurantOffer").unwrap(), alloc) })
    }
}
impl PNSSecureCoding for INRestaurantOffer {}
impl PNSCopying for INRestaurantOffer {}
impl INSObject for INRestaurantOffer {}
impl PNSObject for INRestaurantOffer {}
impl std::convert::TryFrom<NSObject> for INRestaurantOffer {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INRestaurantOffer, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INRestaurantOffer").unwrap()) };
        if is_kind_of {
            Ok(INRestaurantOffer(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INRestaurantOffer")
        }
    }
}
impl IINRestaurantOffer for INRestaurantOffer {}
pub trait IINRestaurantOffer: Sized + std::ops::Deref {
    unsafe fn offerTitleText(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, offerTitleText)
    }
    unsafe fn setOfferTitleText_(&self, offerTitleText: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setOfferTitleText : offerTitleText)
    }
    unsafe fn offerDetailText(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, offerDetailText)
    }
    unsafe fn setOfferDetailText_(&self, offerDetailText: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setOfferDetailText : offerDetailText)
    }
    unsafe fn offerIdentifier(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, offerIdentifier)
    }
    unsafe fn setOfferIdentifier_(&self, offerIdentifier: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setOfferIdentifier : offerIdentifier)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INRestaurantReservationBooking(pub id);
impl std::ops::Deref for INRestaurantReservationBooking {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INRestaurantReservationBooking {}
impl INRestaurantReservationBooking {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INRestaurantReservationBooking").unwrap(), alloc) })
    }
}
impl PNSSecureCoding for INRestaurantReservationBooking {}
impl PNSCopying for INRestaurantReservationBooking {}
impl INSObject for INRestaurantReservationBooking {}
impl PNSObject for INRestaurantReservationBooking {}
impl std::convert::TryFrom<NSObject> for INRestaurantReservationBooking {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INRestaurantReservationBooking, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INRestaurantReservationBooking").unwrap())
        };
        if is_kind_of {
            Ok(INRestaurantReservationBooking(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INRestaurantReservationBooking")
        }
    }
}
impl IINRestaurantReservationBooking for INRestaurantReservationBooking {}
pub trait IINRestaurantReservationBooking: Sized + std::ops::Deref {
    unsafe fn initWithRestaurant_bookingDate_partySize_bookingIdentifier_(
        &self,
        restaurant: INRestaurant,
        bookingDate: NSDate,
        partySize: NSUInteger,
        bookingIdentifier: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithRestaurant : restaurant, bookingDate : bookingDate, partySize : partySize, bookingIdentifier : bookingIdentifier)
    }
    unsafe fn restaurant(&self) -> INRestaurant
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, restaurant)
    }
    unsafe fn setRestaurant_(&self, restaurant: INRestaurant)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRestaurant : restaurant)
    }
    unsafe fn bookingDescription(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, bookingDescription)
    }
    unsafe fn setBookingDescription_(&self, bookingDescription: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBookingDescription : bookingDescription)
    }
    unsafe fn bookingDate(&self) -> NSDate
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, bookingDate)
    }
    unsafe fn setBookingDate_(&self, bookingDate: NSDate)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBookingDate : bookingDate)
    }
    unsafe fn partySize(&self) -> NSUInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, partySize)
    }
    unsafe fn setPartySize_(&self, partySize: NSUInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPartySize : partySize)
    }
    unsafe fn bookingIdentifier(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, bookingIdentifier)
    }
    unsafe fn setBookingIdentifier_(&self, bookingIdentifier: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBookingIdentifier : bookingIdentifier)
    }
    unsafe fn isBookingAvailable(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isBookingAvailable)
    }
    unsafe fn setBookingAvailable_(&self, bookingAvailable: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBookingAvailable : bookingAvailable)
    }
    unsafe fn offers(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, offers)
    }
    unsafe fn setOffers_(&self, offers: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setOffers : offers)
    }
    unsafe fn requiresManualRequest(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, requiresManualRequest)
    }
    unsafe fn setRequiresManualRequest_(&self, requiresManualRequest: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRequiresManualRequest : requiresManualRequest)
    }
    unsafe fn requiresEmailAddress(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, requiresEmailAddress)
    }
    unsafe fn setRequiresEmailAddress_(&self, requiresEmailAddress: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRequiresEmailAddress : requiresEmailAddress)
    }
    unsafe fn requiresName(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, requiresName)
    }
    unsafe fn setRequiresName_(&self, requiresName: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRequiresName : requiresName)
    }
    unsafe fn requiresPhoneNumber(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, requiresPhoneNumber)
    }
    unsafe fn setRequiresPhoneNumber_(&self, requiresPhoneNumber: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRequiresPhoneNumber : requiresPhoneNumber)
    }
}
pub type INRestaurantReservationUserBookingStatus = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INRestaurantReservationUserBooking(pub id);
impl std::ops::Deref for INRestaurantReservationUserBooking {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INRestaurantReservationUserBooking {}
impl INRestaurantReservationUserBooking {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INRestaurantReservationUserBooking").unwrap(), alloc) })
    }
}
impl PNSCopying for INRestaurantReservationUserBooking {}
impl IINRestaurantReservationBooking for INRestaurantReservationUserBooking {}
impl PNSSecureCoding for INRestaurantReservationUserBooking {}
impl From<INRestaurantReservationUserBooking> for INRestaurantReservationBooking {
    fn from(child: INRestaurantReservationUserBooking) -> INRestaurantReservationBooking {
        INRestaurantReservationBooking(child.0)
    }
}
impl std::convert::TryFrom<INRestaurantReservationBooking> for INRestaurantReservationUserBooking {
    type Error = &'static str;
    fn try_from(
        parent: INRestaurantReservationBooking,
    ) -> Result<INRestaurantReservationUserBooking, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INRestaurantReservationUserBooking").unwrap())
        };
        if is_kind_of {
            Ok(INRestaurantReservationUserBooking(parent.0))
        } else {
            Err ("This INRestaurantReservationBooking cannot be downcasted to INRestaurantReservationUserBooking" ,)
        }
    }
}
impl INSObject for INRestaurantReservationUserBooking {}
impl PNSObject for INRestaurantReservationUserBooking {}
impl IINRestaurantReservationUserBooking for INRestaurantReservationUserBooking {}
pub trait IINRestaurantReservationUserBooking: Sized + std::ops::Deref {
    unsafe fn initWithRestaurant_bookingDate_partySize_bookingIdentifier_guest_status_dateStatusModified_(
        &self,
        restaurant: INRestaurant,
        bookingDate: NSDate,
        partySize: NSUInteger,
        bookingIdentifier: NSString,
        guest: INRestaurantGuest,
        status: INRestaurantReservationUserBookingStatus,
        dateStatusModified: NSDate,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithRestaurant : restaurant, bookingDate : bookingDate, partySize : partySize, bookingIdentifier : bookingIdentifier, guest : guest, status : status, dateStatusModified : dateStatusModified)
    }
    unsafe fn guest(&self) -> INRestaurantGuest
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, guest)
    }
    unsafe fn setGuest_(&self, guest: INRestaurantGuest)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setGuest : guest)
    }
    unsafe fn advisementText(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, advisementText)
    }
    unsafe fn setAdvisementText_(&self, advisementText: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAdvisementText : advisementText)
    }
    unsafe fn selectedOffer(&self) -> INRestaurantOffer
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectedOffer)
    }
    unsafe fn setSelectedOffer_(&self, selectedOffer: INRestaurantOffer)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelectedOffer : selectedOffer)
    }
    unsafe fn guestProvidedSpecialRequestText(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, guestProvidedSpecialRequestText)
    }
    unsafe fn setGuestProvidedSpecialRequestText_(&self, guestProvidedSpecialRequestText: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setGuestProvidedSpecialRequestText : guestProvidedSpecialRequestText)
    }
    unsafe fn status(&self) -> INRestaurantReservationUserBookingStatus
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, status)
    }
    unsafe fn setStatus_(&self, status: INRestaurantReservationUserBookingStatus)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setStatus : status)
    }
    unsafe fn dateStatusModified(&self) -> NSDate
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, dateStatusModified)
    }
    unsafe fn setDateStatusModified_(&self, dateStatusModified: NSDate)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDateStatusModified : dateStatusModified)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INBookRestaurantReservationIntent(pub id);
impl std::ops::Deref for INBookRestaurantReservationIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INBookRestaurantReservationIntent {}
impl INBookRestaurantReservationIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INBookRestaurantReservationIntent").unwrap(), alloc) })
    }
}
impl PNSCopying for INBookRestaurantReservationIntent {}
impl IINIntent for INBookRestaurantReservationIntent {}
impl PNSSecureCoding for INBookRestaurantReservationIntent {}
impl std::convert::TryFrom<INIntent> for INBookRestaurantReservationIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INBookRestaurantReservationIntent, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INBookRestaurantReservationIntent").unwrap())
        };
        if is_kind_of {
            Ok(INBookRestaurantReservationIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INBookRestaurantReservationIntent")
        }
    }
}
impl INSObject for INBookRestaurantReservationIntent {}
impl PNSObject for INBookRestaurantReservationIntent {}
impl IINBookRestaurantReservationIntent for INBookRestaurantReservationIntent {}
pub trait IINBookRestaurantReservationIntent: Sized + std::ops::Deref {
    unsafe fn initWithRestaurant_bookingDateComponents_partySize_bookingIdentifier_guest_selectedOffer_guestProvidedSpecialRequestText_(
        &self,
        restaurant: INRestaurant,
        bookingDateComponents: NSDateComponents,
        partySize: NSUInteger,
        bookingIdentifier: NSString,
        guest: INRestaurantGuest,
        selectedOffer: INRestaurantOffer,
        guestProvidedSpecialRequestText: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithRestaurant : restaurant, bookingDateComponents : bookingDateComponents, partySize : partySize, bookingIdentifier : bookingIdentifier, guest : guest, selectedOffer : selectedOffer, guestProvidedSpecialRequestText : guestProvidedSpecialRequestText)
    }
    unsafe fn restaurant(&self) -> INRestaurant
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, restaurant)
    }
    unsafe fn setRestaurant_(&self, restaurant: INRestaurant)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRestaurant : restaurant)
    }
    unsafe fn bookingDateComponents(&self) -> NSDateComponents
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, bookingDateComponents)
    }
    unsafe fn setBookingDateComponents_(&self, bookingDateComponents: NSDateComponents)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBookingDateComponents : bookingDateComponents)
    }
    unsafe fn partySize(&self) -> NSUInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, partySize)
    }
    unsafe fn setPartySize_(&self, partySize: NSUInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPartySize : partySize)
    }
    unsafe fn bookingIdentifier(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, bookingIdentifier)
    }
    unsafe fn setBookingIdentifier_(&self, bookingIdentifier: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBookingIdentifier : bookingIdentifier)
    }
    unsafe fn guest(&self) -> INRestaurantGuest
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, guest)
    }
    unsafe fn setGuest_(&self, guest: INRestaurantGuest)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setGuest : guest)
    }
    unsafe fn selectedOffer(&self) -> INRestaurantOffer
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectedOffer)
    }
    unsafe fn setSelectedOffer_(&self, selectedOffer: INRestaurantOffer)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelectedOffer : selectedOffer)
    }
    unsafe fn guestProvidedSpecialRequestText(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, guestProvidedSpecialRequestText)
    }
    unsafe fn setGuestProvidedSpecialRequestText_(&self, guestProvidedSpecialRequestText: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setGuestProvidedSpecialRequestText : guestProvidedSpecialRequestText)
    }
}
pub trait PINBookRestaurantReservationIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleBookRestaurantReservation_completion_(
        &self,
        intent: INBookRestaurantReservationIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleBookRestaurantReservation : intent, completion : completion)
    }
    unsafe fn confirmBookRestaurantReservation_completion_(
        &self,
        intent: INBookRestaurantReservationIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmBookRestaurantReservation : intent, completion : completion)
    }
    unsafe fn resolveRestaurantForBookRestaurantReservation_withCompletion_(
        &self,
        intent: INBookRestaurantReservationIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveRestaurantForBookRestaurantReservation : intent, withCompletion : completion)
    }
    unsafe fn resolveBookingDateComponentsForBookRestaurantReservation_withCompletion_(
        &self,
        intent: INBookRestaurantReservationIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveBookingDateComponentsForBookRestaurantReservation : intent, withCompletion : completion)
    }
    unsafe fn resolvePartySizeForBookRestaurantReservation_withCompletion_(
        &self,
        intent: INBookRestaurantReservationIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolvePartySizeForBookRestaurantReservation : intent, withCompletion : completion)
    }
    unsafe fn resolveGuestForBookRestaurantReservation_withCompletion_(
        &self,
        intent: INBookRestaurantReservationIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveGuestForBookRestaurantReservation : intent, withCompletion : completion)
    }
    unsafe fn resolveGuestProvidedSpecialRequestTextForBookRestaurantReservation_withCompletion_(
        &self,
        intent: INBookRestaurantReservationIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveGuestProvidedSpecialRequestTextForBookRestaurantReservation : intent, withCompletion : completion)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INGetAvailableRestaurantReservationBookingsIntent(pub id);
impl std::ops::Deref for INGetAvailableRestaurantReservationBookingsIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INGetAvailableRestaurantReservationBookingsIntent {}
impl INGetAvailableRestaurantReservationBookingsIntent {
    pub fn alloc() -> Self {
        Self(unsafe {
            msg_send!(&*objc2::runtime::AnyClass::get(c"INGetAvailableRestaurantReservationBookingsIntent").unwrap(), alloc)
        })
    }
}
impl PNSCopying for INGetAvailableRestaurantReservationBookingsIntent {}
impl IINIntent for INGetAvailableRestaurantReservationBookingsIntent {}
impl PNSSecureCoding for INGetAvailableRestaurantReservationBookingsIntent {}
impl std::convert::TryFrom<INIntent> for INGetAvailableRestaurantReservationBookingsIntent {
    type Error = &'static str;
    fn try_from(
        parent: INIntent,
    ) -> Result<INGetAvailableRestaurantReservationBookingsIntent, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INGetAvailableRestaurantReservationBookingsIntent").unwrap())
        };
        if is_kind_of {
            Ok(INGetAvailableRestaurantReservationBookingsIntent(parent.0))
        } else {
            Err ("This INIntent cannot be downcasted to INGetAvailableRestaurantReservationBookingsIntent" ,)
        }
    }
}
impl INSObject for INGetAvailableRestaurantReservationBookingsIntent {}
impl PNSObject for INGetAvailableRestaurantReservationBookingsIntent {}
impl IINGetAvailableRestaurantReservationBookingsIntent
    for INGetAvailableRestaurantReservationBookingsIntent
{
}
pub trait IINGetAvailableRestaurantReservationBookingsIntent: Sized + std::ops::Deref {
    unsafe fn initWithRestaurant_partySize_preferredBookingDateComponents_maximumNumberOfResults_earliestBookingDateForResults_latestBookingDateForResults_(
        &self,
        restaurant: INRestaurant,
        partySize: NSUInteger,
        preferredBookingDateComponents: NSDateComponents,
        maximumNumberOfResults: NSNumber,
        earliestBookingDateForResults: NSDate,
        latestBookingDateForResults: NSDate,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithRestaurant : restaurant, partySize : partySize, preferredBookingDateComponents : preferredBookingDateComponents, maximumNumberOfResults : maximumNumberOfResults, earliestBookingDateForResults : earliestBookingDateForResults, latestBookingDateForResults : latestBookingDateForResults)
    }
    unsafe fn restaurant(&self) -> INRestaurant
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, restaurant)
    }
    unsafe fn setRestaurant_(&self, restaurant: INRestaurant)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRestaurant : restaurant)
    }
    unsafe fn partySize(&self) -> NSUInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, partySize)
    }
    unsafe fn setPartySize_(&self, partySize: NSUInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPartySize : partySize)
    }
    unsafe fn preferredBookingDateComponents(&self) -> NSDateComponents
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, preferredBookingDateComponents)
    }
    unsafe fn setPreferredBookingDateComponents_(
        &self,
        preferredBookingDateComponents: NSDateComponents,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPreferredBookingDateComponents : preferredBookingDateComponents)
    }
    unsafe fn maximumNumberOfResults(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, maximumNumberOfResults)
    }
    unsafe fn setMaximumNumberOfResults_(&self, maximumNumberOfResults: NSNumber)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMaximumNumberOfResults : maximumNumberOfResults)
    }
    unsafe fn earliestBookingDateForResults(&self) -> NSDate
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, earliestBookingDateForResults)
    }
    unsafe fn setEarliestBookingDateForResults_(&self, earliestBookingDateForResults: NSDate)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setEarliestBookingDateForResults : earliestBookingDateForResults)
    }
    unsafe fn latestBookingDateForResults(&self) -> NSDate
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, latestBookingDateForResults)
    }
    unsafe fn setLatestBookingDateForResults_(&self, latestBookingDateForResults: NSDate)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLatestBookingDateForResults : latestBookingDateForResults)
    }
}
pub trait PINGetAvailableRestaurantReservationBookingsIntentHandling:
    Sized + std::ops::Deref
{
    unsafe fn handleGetAvailableRestaurantReservationBookings_completion_(
        &self,
        intent: INGetAvailableRestaurantReservationBookingsIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleGetAvailableRestaurantReservationBookings : intent, completion : completion)
    }
    unsafe fn confirmGetAvailableRestaurantReservationBookings_completion_(
        &self,
        intent: INGetAvailableRestaurantReservationBookingsIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmGetAvailableRestaurantReservationBookings : intent, completion : completion)
    }
    unsafe fn resolveRestaurantForGetAvailableRestaurantReservationBookings_withCompletion_(
        &self,
        intent: INGetAvailableRestaurantReservationBookingsIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveRestaurantForGetAvailableRestaurantReservationBookings : intent, withCompletion : completion)
    }
    unsafe fn resolvePartySizeForGetAvailableRestaurantReservationBookings_withCompletion_(
        &self,
        intent: INGetAvailableRestaurantReservationBookingsIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolvePartySizeForGetAvailableRestaurantReservationBookings : intent, withCompletion : completion)
    }
    unsafe fn resolvePreferredBookingDateComponentsForGetAvailableRestaurantReservationBookings_withCompletion_(
        &self,
        intent: INGetAvailableRestaurantReservationBookingsIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolvePreferredBookingDateComponentsForGetAvailableRestaurantReservationBookings : intent, withCompletion : completion)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INGetUserCurrentRestaurantReservationBookingsIntent(pub id);
impl std::ops::Deref for INGetUserCurrentRestaurantReservationBookingsIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INGetUserCurrentRestaurantReservationBookingsIntent {}
impl INGetUserCurrentRestaurantReservationBookingsIntent {
    pub fn alloc() -> Self {
        Self(unsafe {
            msg_send!(&*objc2::runtime::AnyClass::get(c"INGetUserCurrentRestaurantReservationBookingsIntent").unwrap(), alloc)
        })
    }
}
impl PNSCopying for INGetUserCurrentRestaurantReservationBookingsIntent {}
impl IINIntent for INGetUserCurrentRestaurantReservationBookingsIntent {}
impl PNSSecureCoding for INGetUserCurrentRestaurantReservationBookingsIntent {}
impl std::convert::TryFrom<INIntent> for INGetUserCurrentRestaurantReservationBookingsIntent {
    type Error = &'static str;
    fn try_from(
        parent: INIntent,
    ) -> Result<INGetUserCurrentRestaurantReservationBookingsIntent, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INGetUserCurrentRestaurantReservationBookingsIntent").unwrap())
        };
        if is_kind_of {
            Ok(INGetUserCurrentRestaurantReservationBookingsIntent(
                parent.0,
            ))
        } else {
            Err ("This INIntent cannot be downcasted to INGetUserCurrentRestaurantReservationBookingsIntent" ,)
        }
    }
}
impl INSObject for INGetUserCurrentRestaurantReservationBookingsIntent {}
impl PNSObject for INGetUserCurrentRestaurantReservationBookingsIntent {}
impl IINGetUserCurrentRestaurantReservationBookingsIntent
    for INGetUserCurrentRestaurantReservationBookingsIntent
{
}
pub trait IINGetUserCurrentRestaurantReservationBookingsIntent: Sized + std::ops::Deref {
    unsafe fn initWithRestaurant_reservationIdentifier_maximumNumberOfResults_earliestBookingDateForResults_(
        &self,
        restaurant: INRestaurant,
        reservationIdentifier: NSString,
        maximumNumberOfResults: NSNumber,
        earliestBookingDateForResults: NSDate,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithRestaurant : restaurant, reservationIdentifier : reservationIdentifier, maximumNumberOfResults : maximumNumberOfResults, earliestBookingDateForResults : earliestBookingDateForResults)
    }
    unsafe fn restaurant(&self) -> INRestaurant
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, restaurant)
    }
    unsafe fn setRestaurant_(&self, restaurant: INRestaurant)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRestaurant : restaurant)
    }
    unsafe fn reservationIdentifier(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, reservationIdentifier)
    }
    unsafe fn setReservationIdentifier_(&self, reservationIdentifier: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setReservationIdentifier : reservationIdentifier)
    }
    unsafe fn maximumNumberOfResults(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, maximumNumberOfResults)
    }
    unsafe fn setMaximumNumberOfResults_(&self, maximumNumberOfResults: NSNumber)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMaximumNumberOfResults : maximumNumberOfResults)
    }
    unsafe fn earliestBookingDateForResults(&self) -> NSDate
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, earliestBookingDateForResults)
    }
    unsafe fn setEarliestBookingDateForResults_(&self, earliestBookingDateForResults: NSDate)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setEarliestBookingDateForResults : earliestBookingDateForResults)
    }
}
pub trait PINGetUserCurrentRestaurantReservationBookingsIntentHandling:
    Sized + std::ops::Deref
{
    unsafe fn handleGetUserCurrentRestaurantReservationBookings_completion_(
        &self,
        intent: INGetUserCurrentRestaurantReservationBookingsIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleGetUserCurrentRestaurantReservationBookings : intent, completion : completion)
    }
    unsafe fn confirmGetUserCurrentRestaurantReservationBookings_completion_(
        &self,
        intent: INGetUserCurrentRestaurantReservationBookingsIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmGetUserCurrentRestaurantReservationBookings : intent, completion : completion)
    }
    unsafe fn resolveRestaurantForGetUserCurrentRestaurantReservationBookings_withCompletion_(
        &self,
        intent: INGetUserCurrentRestaurantReservationBookingsIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveRestaurantForGetUserCurrentRestaurantReservationBookings : intent, withCompletion : completion)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INGetAvailableRestaurantReservationBookingDefaultsIntent(pub id);
impl std::ops::Deref for INGetAvailableRestaurantReservationBookingDefaultsIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INGetAvailableRestaurantReservationBookingDefaultsIntent {}
impl INGetAvailableRestaurantReservationBookingDefaultsIntent {
    pub fn alloc() -> Self {
        Self(unsafe {
            msg_send!(&*objc2::runtime::AnyClass::get(c"INGetAvailableRestaurantReservationBookingDefaultsIntent").unwrap(), alloc)
        })
    }
}
impl IINIntent for INGetAvailableRestaurantReservationBookingDefaultsIntent {}
impl PNSCopying for INGetAvailableRestaurantReservationBookingDefaultsIntent {}
impl PNSSecureCoding for INGetAvailableRestaurantReservationBookingDefaultsIntent {}
impl std::convert::TryFrom<INIntent> for INGetAvailableRestaurantReservationBookingDefaultsIntent {
    type Error = &'static str;
    fn try_from(
        parent: INIntent,
    ) -> Result<INGetAvailableRestaurantReservationBookingDefaultsIntent, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INGetAvailableRestaurantReservationBookingDefaultsIntent").unwrap())
        };
        if is_kind_of {
            Ok(INGetAvailableRestaurantReservationBookingDefaultsIntent(
                parent.0,
            ))
        } else {
            Err ("This INIntent cannot be downcasted to INGetAvailableRestaurantReservationBookingDefaultsIntent" ,)
        }
    }
}
impl INSObject for INGetAvailableRestaurantReservationBookingDefaultsIntent {}
impl PNSObject for INGetAvailableRestaurantReservationBookingDefaultsIntent {}
impl IINGetAvailableRestaurantReservationBookingDefaultsIntent
    for INGetAvailableRestaurantReservationBookingDefaultsIntent
{
}
pub trait IINGetAvailableRestaurantReservationBookingDefaultsIntent:
    Sized + std::ops::Deref
{
    unsafe fn initWithRestaurant_(&self, restaurant: INRestaurant) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithRestaurant : restaurant)
    }
    unsafe fn restaurant(&self) -> INRestaurant
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, restaurant)
    }
    unsafe fn setRestaurant_(&self, restaurant: INRestaurant)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRestaurant : restaurant)
    }
}
pub trait PINGetAvailableRestaurantReservationBookingDefaultsIntentHandling:
    Sized + std::ops::Deref
{
    unsafe fn handleGetAvailableRestaurantReservationBookingDefaults_completion_(
        &self,
        intent: INGetAvailableRestaurantReservationBookingDefaultsIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleGetAvailableRestaurantReservationBookingDefaults : intent, completion : completion)
    }
    unsafe fn confirmGetAvailableRestaurantReservationBookingDefaults_completion_(
        &self,
        intent: INGetAvailableRestaurantReservationBookingDefaultsIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmGetAvailableRestaurantReservationBookingDefaults : intent, completion : completion)
    }
    unsafe fn resolveRestaurantForGetAvailableRestaurantReservationBookingDefaults_withCompletion_(
        &self,
        intent: INGetAvailableRestaurantReservationBookingDefaultsIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolveRestaurantForGetAvailableRestaurantReservationBookingDefaults : intent, withCompletion : completion)
    }
}
pub type INBookRestaurantReservationIntentCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INBookRestaurantReservationIntentResponse(pub id);
impl std::ops::Deref for INBookRestaurantReservationIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INBookRestaurantReservationIntentResponse {}
impl INBookRestaurantReservationIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INBookRestaurantReservationIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INBookRestaurantReservationIntentResponse {}
impl PNSCopying for INBookRestaurantReservationIntentResponse {}
impl PNSSecureCoding for INBookRestaurantReservationIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INBookRestaurantReservationIntentResponse {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResponse,
    ) -> Result<INBookRestaurantReservationIntentResponse, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INBookRestaurantReservationIntentResponse").unwrap())
        };
        if is_kind_of {
            Ok(INBookRestaurantReservationIntentResponse(parent.0))
        } else {
            Err ("This INIntentResponse cannot be downcasted to INBookRestaurantReservationIntentResponse" ,)
        }
    }
}
impl INSObject for INBookRestaurantReservationIntentResponse {}
impl PNSObject for INBookRestaurantReservationIntentResponse {}
impl IINBookRestaurantReservationIntentResponse for INBookRestaurantReservationIntentResponse {}
pub trait IINBookRestaurantReservationIntentResponse: Sized + std::ops::Deref {
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INBookRestaurantReservationIntentCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INBookRestaurantReservationIntentCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
    unsafe fn userBooking(&self) -> INRestaurantReservationUserBooking
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, userBooking)
    }
    unsafe fn setUserBooking_(&self, userBooking: INRestaurantReservationUserBooking)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setUserBooking : userBooking)
    }
}
pub type INGetAvailableRestaurantReservationBookingsIntentCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INGetAvailableRestaurantReservationBookingsIntentResponse(pub id);
impl std::ops::Deref for INGetAvailableRestaurantReservationBookingsIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INGetAvailableRestaurantReservationBookingsIntentResponse {}
impl INGetAvailableRestaurantReservationBookingsIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe {
            msg_send!(&*objc2::runtime::AnyClass::get(c"INGetAvailableRestaurantReservationBookingsIntentResponse").unwrap(), alloc)
        })
    }
}
impl IINIntentResponse for INGetAvailableRestaurantReservationBookingsIntentResponse {}
impl PNSCopying for INGetAvailableRestaurantReservationBookingsIntentResponse {}
impl PNSSecureCoding for INGetAvailableRestaurantReservationBookingsIntentResponse {}
impl std::convert::TryFrom<INIntentResponse>
    for INGetAvailableRestaurantReservationBookingsIntentResponse
{
    type Error = &'static str;
    fn try_from(
        parent: INIntentResponse,
    ) -> Result<INGetAvailableRestaurantReservationBookingsIntentResponse, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INGetAvailableRestaurantReservationBookingsIntentResponse").unwrap())
        };
        if is_kind_of {
            Ok(INGetAvailableRestaurantReservationBookingsIntentResponse(
                parent.0,
            ))
        } else {
            Err ("This INIntentResponse cannot be downcasted to INGetAvailableRestaurantReservationBookingsIntentResponse" ,)
        }
    }
}
impl INSObject for INGetAvailableRestaurantReservationBookingsIntentResponse {}
impl PNSObject for INGetAvailableRestaurantReservationBookingsIntentResponse {}
impl IINGetAvailableRestaurantReservationBookingsIntentResponse
    for INGetAvailableRestaurantReservationBookingsIntentResponse
{
}
pub trait IINGetAvailableRestaurantReservationBookingsIntentResponse:
    Sized + std::ops::Deref
{
    unsafe fn initWithAvailableBookings_code_userActivity_(
        &self,
        availableBookings: NSArray,
        code: INGetAvailableRestaurantReservationBookingsIntentCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithAvailableBookings : availableBookings, code : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INGetAvailableRestaurantReservationBookingsIntentCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
    unsafe fn localizedRestaurantDescriptionText(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, localizedRestaurantDescriptionText)
    }
    unsafe fn setLocalizedRestaurantDescriptionText_(
        &self,
        localizedRestaurantDescriptionText: NSString,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLocalizedRestaurantDescriptionText : localizedRestaurantDescriptionText)
    }
    unsafe fn localizedBookingAdvisementText(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, localizedBookingAdvisementText)
    }
    unsafe fn setLocalizedBookingAdvisementText_(&self, localizedBookingAdvisementText: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLocalizedBookingAdvisementText : localizedBookingAdvisementText)
    }
    unsafe fn termsAndConditions(&self) -> INTermsAndConditions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, termsAndConditions)
    }
    unsafe fn setTermsAndConditions_(&self, termsAndConditions: INTermsAndConditions)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTermsAndConditions : termsAndConditions)
    }
    unsafe fn availableBookings(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, availableBookings)
    }
}
pub type INGetUserCurrentRestaurantReservationBookingsIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INGetUserCurrentRestaurantReservationBookingsIntentResponse(pub id);
impl std::ops::Deref for INGetUserCurrentRestaurantReservationBookingsIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INGetUserCurrentRestaurantReservationBookingsIntentResponse {}
impl INGetUserCurrentRestaurantReservationBookingsIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe {
            msg_send!(&*objc2::runtime::AnyClass::get(c"INGetUserCurrentRestaurantReservationBookingsIntentResponse").unwrap(), alloc)
        })
    }
}
impl IINIntentResponse for INGetUserCurrentRestaurantReservationBookingsIntentResponse {}
impl PNSCopying for INGetUserCurrentRestaurantReservationBookingsIntentResponse {}
impl PNSSecureCoding for INGetUserCurrentRestaurantReservationBookingsIntentResponse {}
impl std::convert::TryFrom<INIntentResponse>
    for INGetUserCurrentRestaurantReservationBookingsIntentResponse
{
    type Error = &'static str;
    fn try_from(
        parent: INIntentResponse,
    ) -> Result<INGetUserCurrentRestaurantReservationBookingsIntentResponse, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INGetUserCurrentRestaurantReservationBookingsIntentResponse").unwrap())
        };
        if is_kind_of {
            Ok(INGetUserCurrentRestaurantReservationBookingsIntentResponse(
                parent.0,
            ))
        } else {
            Err ("This INIntentResponse cannot be downcasted to INGetUserCurrentRestaurantReservationBookingsIntentResponse" ,)
        }
    }
}
impl INSObject for INGetUserCurrentRestaurantReservationBookingsIntentResponse {}
impl PNSObject for INGetUserCurrentRestaurantReservationBookingsIntentResponse {}
impl IINGetUserCurrentRestaurantReservationBookingsIntentResponse
    for INGetUserCurrentRestaurantReservationBookingsIntentResponse
{
}
pub trait IINGetUserCurrentRestaurantReservationBookingsIntentResponse:
    Sized + std::ops::Deref
{
    unsafe fn initWithUserCurrentBookings_code_userActivity_(
        &self,
        userCurrentBookings: NSArray,
        code: INGetUserCurrentRestaurantReservationBookingsIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithUserCurrentBookings : userCurrentBookings, code : code, userActivity : userActivity)
    }
    unsafe fn code(&self) -> INGetUserCurrentRestaurantReservationBookingsIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
    unsafe fn userCurrentBookings(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, userCurrentBookings)
    }
    unsafe fn setUserCurrentBookings_(&self, userCurrentBookings: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setUserCurrentBookings : userCurrentBookings)
    }
}
pub type INGetAvailableRestaurantReservationBookingDefaultsIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INGetAvailableRestaurantReservationBookingDefaultsIntentResponse(pub id);
impl std::ops::Deref for INGetAvailableRestaurantReservationBookingDefaultsIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INGetAvailableRestaurantReservationBookingDefaultsIntentResponse {}
impl INGetAvailableRestaurantReservationBookingDefaultsIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe {
            msg_send!(&*objc2::runtime::AnyClass::get(c"INGetAvailableRestaurantReservationBookingDefaultsIntentResponse").unwrap(), alloc)
        })
    }
}
impl IINIntentResponse for INGetAvailableRestaurantReservationBookingDefaultsIntentResponse {}
impl PNSCopying for INGetAvailableRestaurantReservationBookingDefaultsIntentResponse {}
impl PNSSecureCoding for INGetAvailableRestaurantReservationBookingDefaultsIntentResponse {}
impl std::convert::TryFrom<INIntentResponse>
    for INGetAvailableRestaurantReservationBookingDefaultsIntentResponse
{
    type Error = &'static str;
    fn try_from(
        parent: INIntentResponse,
    ) -> Result<INGetAvailableRestaurantReservationBookingDefaultsIntentResponse, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INGetAvailableRestaurantReservationBookingDefaultsIntentResponse").unwrap())
        };
        if is_kind_of {
            Ok(INGetAvailableRestaurantReservationBookingDefaultsIntentResponse(parent.0))
        } else {
            Err ("This INIntentResponse cannot be downcasted to INGetAvailableRestaurantReservationBookingDefaultsIntentResponse" ,)
        }
    }
}
impl INSObject for INGetAvailableRestaurantReservationBookingDefaultsIntentResponse {}
impl PNSObject for INGetAvailableRestaurantReservationBookingDefaultsIntentResponse {}
impl IINGetAvailableRestaurantReservationBookingDefaultsIntentResponse
    for INGetAvailableRestaurantReservationBookingDefaultsIntentResponse
{
}
pub trait IINGetAvailableRestaurantReservationBookingDefaultsIntentResponse:
    Sized + std::ops::Deref
{
    unsafe fn initWithDefaultPartySize_defaultBookingDate_code_userActivity_(
        &self,
        defaultPartySize: NSUInteger,
        defaultBookingDate: NSDate,
        code: INGetAvailableRestaurantReservationBookingDefaultsIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithDefaultPartySize : defaultPartySize, defaultBookingDate : defaultBookingDate, code : code, userActivity : userActivity)
    }
    unsafe fn defaultPartySize(&self) -> NSUInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, defaultPartySize)
    }
    unsafe fn defaultBookingDate(&self) -> NSDate
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, defaultBookingDate)
    }
    unsafe fn maximumPartySize(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, maximumPartySize)
    }
    unsafe fn setMaximumPartySize_(&self, maximumPartySize: NSNumber)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMaximumPartySize : maximumPartySize)
    }
    unsafe fn minimumPartySize(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, minimumPartySize)
    }
    unsafe fn setMinimumPartySize_(&self, minimumPartySize: NSNumber)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMinimumPartySize : minimumPartySize)
    }
    unsafe fn providerImage(&self) -> INImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, providerImage)
    }
    unsafe fn setProviderImage_(&self, providerImage: INImage)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setProviderImage : providerImage)
    }
    unsafe fn code(&self) -> INGetAvailableRestaurantReservationBookingDefaultsIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INGetRestaurantGuestIntent(pub id);
impl std::ops::Deref for INGetRestaurantGuestIntent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INGetRestaurantGuestIntent {}
impl INGetRestaurantGuestIntent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INGetRestaurantGuestIntent").unwrap(), alloc) })
    }
}
impl IINIntent for INGetRestaurantGuestIntent {}
impl PNSCopying for INGetRestaurantGuestIntent {}
impl PNSSecureCoding for INGetRestaurantGuestIntent {}
impl std::convert::TryFrom<INIntent> for INGetRestaurantGuestIntent {
    type Error = &'static str;
    fn try_from(parent: INIntent) -> Result<INGetRestaurantGuestIntent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INGetRestaurantGuestIntent").unwrap()) };
        if is_kind_of {
            Ok(INGetRestaurantGuestIntent(parent.0))
        } else {
            Err("This INIntent cannot be downcasted to INGetRestaurantGuestIntent")
        }
    }
}
impl INSObject for INGetRestaurantGuestIntent {}
impl PNSObject for INGetRestaurantGuestIntent {}
impl IINGetRestaurantGuestIntent for INGetRestaurantGuestIntent {}
pub trait IINGetRestaurantGuestIntent: Sized + std::ops::Deref {}
pub trait PINGetRestaurantGuestIntentHandling: Sized + std::ops::Deref {
    unsafe fn handleGetRestaurantGuest_completion_(
        &self,
        intent: INGetRestaurantGuestIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleGetRestaurantGuest : intent, completion : completion)
    }
    unsafe fn confirmGetRestaurantGuest_completion_(
        &self,
        guestIntent: INGetRestaurantGuestIntent,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confirmGetRestaurantGuest : guestIntent, completion : completion)
    }
}
pub type INGetRestaurantGuestIntentResponseCode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INGetRestaurantGuestIntentResponse(pub id);
impl std::ops::Deref for INGetRestaurantGuestIntentResponse {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INGetRestaurantGuestIntentResponse {}
impl INGetRestaurantGuestIntentResponse {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INGetRestaurantGuestIntentResponse").unwrap(), alloc) })
    }
}
impl IINIntentResponse for INGetRestaurantGuestIntentResponse {}
impl PNSCopying for INGetRestaurantGuestIntentResponse {}
impl PNSSecureCoding for INGetRestaurantGuestIntentResponse {}
impl std::convert::TryFrom<INIntentResponse> for INGetRestaurantGuestIntentResponse {
    type Error = &'static str;
    fn try_from(
        parent: INIntentResponse,
    ) -> Result<INGetRestaurantGuestIntentResponse, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INGetRestaurantGuestIntentResponse").unwrap())
        };
        if is_kind_of {
            Ok(INGetRestaurantGuestIntentResponse(parent.0))
        } else {
            Err("This INIntentResponse cannot be downcasted to INGetRestaurantGuestIntentResponse")
        }
    }
}
impl INSObject for INGetRestaurantGuestIntentResponse {}
impl PNSObject for INGetRestaurantGuestIntentResponse {}
impl IINGetRestaurantGuestIntentResponse for INGetRestaurantGuestIntentResponse {}
pub trait IINGetRestaurantGuestIntentResponse: Sized + std::ops::Deref {
    unsafe fn initWithCode_userActivity_(
        &self,
        code: INGetRestaurantGuestIntentResponseCode,
        userActivity: NSUserActivity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCode : code, userActivity : userActivity)
    }
    unsafe fn guest(&self) -> INRestaurantGuest
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, guest)
    }
    unsafe fn setGuest_(&self, guest: INRestaurantGuest)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setGuest : guest)
    }
    unsafe fn guestDisplayPreferences(&self) -> INRestaurantGuestDisplayPreferences
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, guestDisplayPreferences)
    }
    unsafe fn setGuestDisplayPreferences_(
        &self,
        guestDisplayPreferences: INRestaurantGuestDisplayPreferences,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setGuestDisplayPreferences : guestDisplayPreferences)
    }
    unsafe fn code(&self) -> INGetRestaurantGuestIntentResponseCode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, code)
    }
}
pub type INVocabularyStringType = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INVocabulary(pub id);
impl std::ops::Deref for INVocabulary {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INVocabulary {}
impl INVocabulary {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INVocabulary").unwrap(), alloc) })
    }
}
impl INSObject for INVocabulary {}
impl PNSObject for INVocabulary {}
impl std::convert::TryFrom<NSObject> for INVocabulary {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INVocabulary, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INVocabulary").unwrap()) };
        if is_kind_of {
            Ok(INVocabulary(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INVocabulary")
        }
    }
}
impl IINVocabulary for INVocabulary {}
pub trait IINVocabulary: Sized + std::ops::Deref {
    unsafe fn setVocabularyStrings_ofType_(
        &self,
        vocabulary: NSOrderedSet,
        type_: INVocabularyStringType,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setVocabularyStrings : vocabulary, ofType : type_)
    }
    unsafe fn setVocabulary_ofType_(&self, vocabulary: NSOrderedSet, type_: INVocabularyStringType)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setVocabulary : vocabulary, ofType : type_)
    }
    unsafe fn removeAllVocabularyStrings(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, removeAllVocabularyStrings)
    }
    unsafe fn sharedVocabulary() -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INVocabulary").unwrap(), sharedVocabulary)
    }
}
pub type INUpcomingMediaPredictionMode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INUpcomingMediaManager(pub id);
impl std::ops::Deref for INUpcomingMediaManager {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INUpcomingMediaManager {}
impl INUpcomingMediaManager {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INUpcomingMediaManager").unwrap(), alloc) })
    }
}
impl INSObject for INUpcomingMediaManager {}
impl PNSObject for INUpcomingMediaManager {}
impl std::convert::TryFrom<NSObject> for INUpcomingMediaManager {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INUpcomingMediaManager, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INUpcomingMediaManager").unwrap()) };
        if is_kind_of {
            Ok(INUpcomingMediaManager(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INUpcomingMediaManager")
        }
    }
}
impl IINUpcomingMediaManager for INUpcomingMediaManager {}
pub trait IINUpcomingMediaManager: Sized + std::ops::Deref {
    unsafe fn setSuggestedMediaIntents_(&self, intents: NSOrderedSet)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSuggestedMediaIntents : intents)
    }
    unsafe fn setPredictionMode_forType_(
        &self,
        mode: INUpcomingMediaPredictionMode,
        type_: INMediaItemType,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPredictionMode : mode, forType : type_)
    }
    unsafe fn sharedManager() -> INUpcomingMediaManager
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INUpcomingMediaManager").unwrap(), sharedManager)
    }
}
pub trait CLPlacemark_INIntentsAdditions: Sized + std::ops::Deref {
    unsafe fn placemarkWithLocation_name_postalAddress_(
        location: CLLocation,
        name: NSString,
        postalAddress: CNPostalAddress,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"CLPlacemark").unwrap(), placemarkWithLocation : location, name : name, postalAddress : postalAddress)
    }
}
impl INPerson_SiriAdditions for INPerson {}
pub trait INPerson_SiriAdditions: Sized + std::ops::Deref {
    unsafe fn siriMatches(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, siriMatches)
    }
    unsafe fn isMe(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isMe)
    }
}
pub type INSiriAuthorizationStatus = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INPreferences(pub id);
impl std::ops::Deref for INPreferences {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INPreferences {}
impl INPreferences {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INPreferences").unwrap(), alloc) })
    }
}
impl INSObject for INPreferences {}
impl PNSObject for INPreferences {}
impl std::convert::TryFrom<NSObject> for INPreferences {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INPreferences, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INPreferences").unwrap()) };
        if is_kind_of {
            Ok(INPreferences(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INPreferences")
        }
    }
}
impl IINPreferences for INPreferences {}
pub trait IINPreferences: Sized + std::ops::Deref {
    unsafe fn siriAuthorizationStatus() -> INSiriAuthorizationStatus
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INPreferences").unwrap(), siriAuthorizationStatus)
    }
    unsafe fn requestSiriAuthorization_(handler: *mut ::std::os::raw::c_void)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INPreferences").unwrap(), requestSiriAuthorization : handler)
    }
    unsafe fn siriLanguageCode() -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INPreferences").unwrap(), siriLanguageCode)
    }
}
pub type INFocusStatusAuthorizationStatus = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INFocusStatusCenter(pub id);
impl std::ops::Deref for INFocusStatusCenter {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INFocusStatusCenter {}
impl INFocusStatusCenter {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INFocusStatusCenter").unwrap(), alloc) })
    }
}
impl INSObject for INFocusStatusCenter {}
impl PNSObject for INFocusStatusCenter {}
impl std::convert::TryFrom<NSObject> for INFocusStatusCenter {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INFocusStatusCenter, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INFocusStatusCenter").unwrap()) };
        if is_kind_of {
            Ok(INFocusStatusCenter(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INFocusStatusCenter")
        }
    }
}
impl IINFocusStatusCenter for INFocusStatusCenter {}
pub trait IINFocusStatusCenter: Sized + std::ops::Deref {
    unsafe fn requestAuthorizationWithCompletionHandler_(
        &self,
        completionHandler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, requestAuthorizationWithCompletionHandler : completionHandler)
    }
    unsafe fn focusStatus(&self) -> INFocusStatus
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, focusStatus)
    }
    unsafe fn authorizationStatus(&self) -> INFocusStatusAuthorizationStatus
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, authorizationStatus)
    }
    unsafe fn defaultCenter() -> INFocusStatusCenter
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INFocusStatusCenter").unwrap(), defaultCenter)
    }
}
pub trait NSExtensionContext_ShareExtension: Sized + std::ops::Deref {
    unsafe fn intent(&self) -> INIntent
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, intent)
    }
}
pub trait NSString_Intents: Sized + std::ops::Deref {
    unsafe fn deferredLocalizedIntentsStringWithFormat_(format: NSString) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSString").unwrap(), deferredLocalizedIntentsStringWithFormat : format)
    }
    unsafe fn deferredLocalizedIntentsStringWithFormat_fromTable_(
        format: NSString,
        table: NSString,
    ) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSString").unwrap(), deferredLocalizedIntentsStringWithFormat : format, fromTable : table)
    }
    unsafe fn deferredLocalizedIntentsStringWithFormat_fromTable_arguments_(
        format: NSString,
        table: NSString,
        arguments: va_list,
    ) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSString").unwrap(), deferredLocalizedIntentsStringWithFormat : format, fromTable : table, arguments : arguments)
    }
}
pub trait NSUserActivity_IntentsAdditions: Sized + std::ops::Deref {
    unsafe fn interaction(&self) -> INInteraction
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, interaction)
    }
    unsafe fn suggestedInvocationPhrase(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, suggestedInvocationPhrase)
    }
    unsafe fn setSuggestedInvocationPhrase_(&self, suggestedInvocationPhrase: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSuggestedInvocationPhrase : suggestedInvocationPhrase)
    }
    unsafe fn shortcutAvailability(&self) -> INShortcutAvailabilityOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, shortcutAvailability)
    }
    unsafe fn setShortcutAvailability_(&self, shortcutAvailability: INShortcutAvailabilityOptions)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setShortcutAvailability : shortcutAvailability)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INUserContext(pub id);
impl std::ops::Deref for INUserContext {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INUserContext {}
impl INUserContext {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INUserContext").unwrap(), alloc) })
    }
}
impl PNSSecureCoding for INUserContext {}
impl INSObject for INUserContext {}
impl PNSObject for INUserContext {}
impl std::convert::TryFrom<NSObject> for INUserContext {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INUserContext, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INUserContext").unwrap()) };
        if is_kind_of {
            Ok(INUserContext(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INUserContext")
        }
    }
}
impl IINUserContext for INUserContext {}
pub trait IINUserContext: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn becomeCurrent(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, becomeCurrent)
    }
}
pub type INMediaUserContextSubscriptionStatus = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INMediaUserContext(pub id);
impl std::ops::Deref for INMediaUserContext {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INMediaUserContext {}
impl INMediaUserContext {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INMediaUserContext").unwrap(), alloc) })
    }
}
impl IINUserContext for INMediaUserContext {}
impl PNSSecureCoding for INMediaUserContext {}
impl From<INMediaUserContext> for INUserContext {
    fn from(child: INMediaUserContext) -> INUserContext {
        INUserContext(child.0)
    }
}
impl std::convert::TryFrom<INUserContext> for INMediaUserContext {
    type Error = &'static str;
    fn try_from(parent: INUserContext) -> Result<INMediaUserContext, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INMediaUserContext").unwrap()) };
        if is_kind_of {
            Ok(INMediaUserContext(parent.0))
        } else {
            Err("This INUserContext cannot be downcasted to INMediaUserContext")
        }
    }
}
impl INSObject for INMediaUserContext {}
impl PNSObject for INMediaUserContext {}
impl IINMediaUserContext for INMediaUserContext {}
pub trait IINMediaUserContext: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn subscriptionStatus(&self) -> INMediaUserContextSubscriptionStatus
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, subscriptionStatus)
    }
    unsafe fn setSubscriptionStatus_(
        &self,
        subscriptionStatus: INMediaUserContextSubscriptionStatus,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSubscriptionStatus : subscriptionStatus)
    }
    unsafe fn numberOfLibraryItems(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfLibraryItems)
    }
    unsafe fn setNumberOfLibraryItems_(&self, numberOfLibraryItems: NSNumber)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setNumberOfLibraryItems : numberOfLibraryItems)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INNoteContent(pub id);
impl std::ops::Deref for INNoteContent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INNoteContent {}
impl INNoteContent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INNoteContent").unwrap(), alloc) })
    }
}
impl PNSSecureCoding for INNoteContent {}
impl PNSCopying for INNoteContent {}
impl INSObject for INNoteContent {}
impl PNSObject for INNoteContent {}
impl std::convert::TryFrom<NSObject> for INNoteContent {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INNoteContent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INNoteContent").unwrap()) };
        if is_kind_of {
            Ok(INNoteContent(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INNoteContent")
        }
    }
}
impl IINNoteContent for INNoteContent {}
pub trait IINNoteContent: Sized + std::ops::Deref {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INTextNoteContent(pub id);
impl std::ops::Deref for INTextNoteContent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INTextNoteContent {}
impl INTextNoteContent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INTextNoteContent").unwrap(), alloc) })
    }
}
impl PNSSecureCoding for INTextNoteContent {}
impl PNSCopying for INTextNoteContent {}
impl IINNoteContent for INTextNoteContent {}
impl From<INTextNoteContent> for INNoteContent {
    fn from(child: INTextNoteContent) -> INNoteContent {
        INNoteContent(child.0)
    }
}
impl std::convert::TryFrom<INNoteContent> for INTextNoteContent {
    type Error = &'static str;
    fn try_from(parent: INNoteContent) -> Result<INTextNoteContent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INTextNoteContent").unwrap()) };
        if is_kind_of {
            Ok(INTextNoteContent(parent.0))
        } else {
            Err("This INNoteContent cannot be downcasted to INTextNoteContent")
        }
    }
}
impl INSObject for INTextNoteContent {}
impl PNSObject for INTextNoteContent {}
impl IINTextNoteContent for INTextNoteContent {}
pub trait IINTextNoteContent: Sized + std::ops::Deref {
    unsafe fn initWithText_(&self, text: NSString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithText : text)
    }
    unsafe fn text(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, text)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INImageNoteContent(pub id);
impl std::ops::Deref for INImageNoteContent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INImageNoteContent {}
impl INImageNoteContent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INImageNoteContent").unwrap(), alloc) })
    }
}
impl PNSSecureCoding for INImageNoteContent {}
impl PNSCopying for INImageNoteContent {}
impl IINNoteContent for INImageNoteContent {}
impl std::convert::TryFrom<INNoteContent> for INImageNoteContent {
    type Error = &'static str;
    fn try_from(parent: INNoteContent) -> Result<INImageNoteContent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INImageNoteContent").unwrap()) };
        if is_kind_of {
            Ok(INImageNoteContent(parent.0))
        } else {
            Err("This INNoteContent cannot be downcasted to INImageNoteContent")
        }
    }
}
impl INSObject for INImageNoteContent {}
impl PNSObject for INImageNoteContent {}
impl IINImageNoteContent for INImageNoteContent {}
pub trait IINImageNoteContent: Sized + std::ops::Deref {
    unsafe fn initWithImage_(&self, image: INImage) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithImage : image)
    }
    unsafe fn image(&self) -> INImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, image)
    }
}
pub type INDailyRoutineSituation = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INRelevanceProvider(pub id);
impl std::ops::Deref for INRelevanceProvider {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INRelevanceProvider {}
impl INRelevanceProvider {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INRelevanceProvider").unwrap(), alloc) })
    }
}
impl PNSCopying for INRelevanceProvider {}
impl PNSSecureCoding for INRelevanceProvider {}
impl INSObject for INRelevanceProvider {}
impl PNSObject for INRelevanceProvider {}
impl std::convert::TryFrom<NSObject> for INRelevanceProvider {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INRelevanceProvider, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INRelevanceProvider").unwrap()) };
        if is_kind_of {
            Ok(INRelevanceProvider(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INRelevanceProvider")
        }
    }
}
impl IINRelevanceProvider for INRelevanceProvider {}
pub trait IINRelevanceProvider: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INDateRelevanceProvider(pub id);
impl std::ops::Deref for INDateRelevanceProvider {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INDateRelevanceProvider {}
impl INDateRelevanceProvider {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INDateRelevanceProvider").unwrap(), alloc) })
    }
}
impl IINRelevanceProvider for INDateRelevanceProvider {}
impl PNSCopying for INDateRelevanceProvider {}
impl PNSSecureCoding for INDateRelevanceProvider {}
impl From<INDateRelevanceProvider> for INRelevanceProvider {
    fn from(child: INDateRelevanceProvider) -> INRelevanceProvider {
        INRelevanceProvider(child.0)
    }
}
impl std::convert::TryFrom<INRelevanceProvider> for INDateRelevanceProvider {
    type Error = &'static str;
    fn try_from(parent: INRelevanceProvider) -> Result<INDateRelevanceProvider, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INDateRelevanceProvider").unwrap()) };
        if is_kind_of {
            Ok(INDateRelevanceProvider(parent.0))
        } else {
            Err("This INRelevanceProvider cannot be downcasted to INDateRelevanceProvider")
        }
    }
}
impl INSObject for INDateRelevanceProvider {}
impl PNSObject for INDateRelevanceProvider {}
impl IINDateRelevanceProvider for INDateRelevanceProvider {}
pub trait IINDateRelevanceProvider: Sized + std::ops::Deref {
    unsafe fn initWithStartDate_endDate_(&self, startDate: NSDate, endDate: NSDate) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithStartDate : startDate, endDate : endDate)
    }
    unsafe fn startDate(&self) -> NSDate
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, startDate)
    }
    unsafe fn endDate(&self) -> NSDate
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, endDate)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INLocationRelevanceProvider(pub id);
impl std::ops::Deref for INLocationRelevanceProvider {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INLocationRelevanceProvider {}
impl INLocationRelevanceProvider {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INLocationRelevanceProvider").unwrap(), alloc) })
    }
}
impl IINRelevanceProvider for INLocationRelevanceProvider {}
impl PNSCopying for INLocationRelevanceProvider {}
impl PNSSecureCoding for INLocationRelevanceProvider {}
impl std::convert::TryFrom<INRelevanceProvider> for INLocationRelevanceProvider {
    type Error = &'static str;
    fn try_from(parent: INRelevanceProvider) -> Result<INLocationRelevanceProvider, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INLocationRelevanceProvider").unwrap()) };
        if is_kind_of {
            Ok(INLocationRelevanceProvider(parent.0))
        } else {
            Err("This INRelevanceProvider cannot be downcasted to INLocationRelevanceProvider")
        }
    }
}
impl INSObject for INLocationRelevanceProvider {}
impl PNSObject for INLocationRelevanceProvider {}
impl IINLocationRelevanceProvider for INLocationRelevanceProvider {}
pub trait IINLocationRelevanceProvider: Sized + std::ops::Deref {
    unsafe fn initWithRegion_(&self, region: CLRegion) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithRegion : region)
    }
    unsafe fn region(&self) -> CLRegion
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, region)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INDailyRoutineRelevanceProvider(pub id);
impl std::ops::Deref for INDailyRoutineRelevanceProvider {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INDailyRoutineRelevanceProvider {}
impl INDailyRoutineRelevanceProvider {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INDailyRoutineRelevanceProvider").unwrap(), alloc) })
    }
}
impl IINRelevanceProvider for INDailyRoutineRelevanceProvider {}
impl PNSCopying for INDailyRoutineRelevanceProvider {}
impl PNSSecureCoding for INDailyRoutineRelevanceProvider {}
impl std::convert::TryFrom<INRelevanceProvider> for INDailyRoutineRelevanceProvider {
    type Error = &'static str;
    fn try_from(
        parent: INRelevanceProvider,
    ) -> Result<INDailyRoutineRelevanceProvider, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INDailyRoutineRelevanceProvider").unwrap())
        };
        if is_kind_of {
            Ok(INDailyRoutineRelevanceProvider(parent.0))
        } else {
            Err("This INRelevanceProvider cannot be downcasted to INDailyRoutineRelevanceProvider")
        }
    }
}
impl INSObject for INDailyRoutineRelevanceProvider {}
impl PNSObject for INDailyRoutineRelevanceProvider {}
impl IINDailyRoutineRelevanceProvider for INDailyRoutineRelevanceProvider {}
pub trait IINDailyRoutineRelevanceProvider: Sized + std::ops::Deref {
    unsafe fn initWithSituation_(&self, situation: INDailyRoutineSituation) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithSituation : situation)
    }
    unsafe fn situation(&self) -> INDailyRoutineSituation
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, situation)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INDefaultCardTemplate(pub id);
impl std::ops::Deref for INDefaultCardTemplate {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INDefaultCardTemplate {}
impl INDefaultCardTemplate {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INDefaultCardTemplate").unwrap(), alloc) })
    }
}
impl PNSCopying for INDefaultCardTemplate {}
impl PNSSecureCoding for INDefaultCardTemplate {}
impl INSObject for INDefaultCardTemplate {}
impl PNSObject for INDefaultCardTemplate {}
impl std::convert::TryFrom<NSObject> for INDefaultCardTemplate {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INDefaultCardTemplate, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INDefaultCardTemplate").unwrap()) };
        if is_kind_of {
            Ok(INDefaultCardTemplate(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INDefaultCardTemplate")
        }
    }
}
impl IINDefaultCardTemplate for INDefaultCardTemplate {}
pub trait IINDefaultCardTemplate: Sized + std::ops::Deref {
    unsafe fn initWithTitle_(&self, title: NSString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithTitle : title)
    }
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn title(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, title)
    }
    unsafe fn setTitle_(&self, title: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTitle : title)
    }
    unsafe fn subtitle(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, subtitle)
    }
    unsafe fn setSubtitle_(&self, subtitle: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSubtitle : subtitle)
    }
    unsafe fn image(&self) -> INImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, image)
    }
    unsafe fn setImage_(&self, image: INImage)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setImage : image)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INShortcut(pub id);
impl std::ops::Deref for INShortcut {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INShortcut {}
impl INShortcut {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INShortcut").unwrap(), alloc) })
    }
}
impl PNSSecureCoding for INShortcut {}
impl PNSCopying for INShortcut {}
impl INSObject for INShortcut {}
impl PNSObject for INShortcut {}
impl std::convert::TryFrom<NSObject> for INShortcut {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INShortcut, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INShortcut").unwrap()) };
        if is_kind_of {
            Ok(INShortcut(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INShortcut")
        }
    }
}
impl IINShortcut for INShortcut {}
pub trait IINShortcut: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithIntent_(&self, intent: INIntent) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithIntent : intent)
    }
    unsafe fn initWithUserActivity_(&self, userActivity: NSUserActivity) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithUserActivity : userActivity)
    }
    unsafe fn intent(&self) -> INIntent
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, intent)
    }
    unsafe fn userActivity(&self) -> NSUserActivity
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, userActivity)
    }
    unsafe fn new() -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INShortcut").unwrap(), new)
    }
}
pub type INRelevantShortcutRole = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INRelevantShortcut(pub id);
impl std::ops::Deref for INRelevantShortcut {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INRelevantShortcut {}
impl INRelevantShortcut {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INRelevantShortcut").unwrap(), alloc) })
    }
}
impl PNSSecureCoding for INRelevantShortcut {}
impl PNSCopying for INRelevantShortcut {}
impl INSObject for INRelevantShortcut {}
impl PNSObject for INRelevantShortcut {}
impl std::convert::TryFrom<NSObject> for INRelevantShortcut {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INRelevantShortcut, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INRelevantShortcut").unwrap()) };
        if is_kind_of {
            Ok(INRelevantShortcut(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INRelevantShortcut")
        }
    }
}
impl IINRelevantShortcut for INRelevantShortcut {}
pub trait IINRelevantShortcut: Sized + std::ops::Deref {
    unsafe fn initWithShortcut_(&self, shortcut: INShortcut) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithShortcut : shortcut)
    }
    unsafe fn relevanceProviders(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, relevanceProviders)
    }
    unsafe fn setRelevanceProviders_(&self, relevanceProviders: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRelevanceProviders : relevanceProviders)
    }
    unsafe fn watchTemplate(&self) -> INDefaultCardTemplate
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, watchTemplate)
    }
    unsafe fn setWatchTemplate_(&self, watchTemplate: INDefaultCardTemplate)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setWatchTemplate : watchTemplate)
    }
    unsafe fn widgetKind(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, widgetKind)
    }
    unsafe fn setWidgetKind_(&self, widgetKind: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setWidgetKind : widgetKind)
    }
    unsafe fn shortcutRole(&self) -> INRelevantShortcutRole
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, shortcutRole)
    }
    unsafe fn setShortcutRole_(&self, shortcutRole: INRelevantShortcutRole)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setShortcutRole : shortcutRole)
    }
    unsafe fn shortcut(&self) -> INShortcut
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, shortcut)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INRelevantShortcutStore(pub id);
impl std::ops::Deref for INRelevantShortcutStore {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INRelevantShortcutStore {}
impl INRelevantShortcutStore {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INRelevantShortcutStore").unwrap(), alloc) })
    }
}
impl INSObject for INRelevantShortcutStore {}
impl PNSObject for INRelevantShortcutStore {}
impl std::convert::TryFrom<NSObject> for INRelevantShortcutStore {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INRelevantShortcutStore, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INRelevantShortcutStore").unwrap()) };
        if is_kind_of {
            Ok(INRelevantShortcutStore(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INRelevantShortcutStore")
        }
    }
}
impl IINRelevantShortcutStore for INRelevantShortcutStore {}
pub trait IINRelevantShortcutStore: Sized + std::ops::Deref {
    unsafe fn setRelevantShortcuts_completionHandler_(
        &self,
        shortcuts: NSArray,
        completionHandler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRelevantShortcuts : shortcuts, completionHandler : completionHandler)
    }
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn defaultStore() -> INRelevantShortcutStore
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INRelevantShortcutStore").unwrap(), defaultStore)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INVoiceShortcut(pub id);
impl std::ops::Deref for INVoiceShortcut {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INVoiceShortcut {}
impl INVoiceShortcut {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INVoiceShortcut").unwrap(), alloc) })
    }
}
impl PNSSecureCoding for INVoiceShortcut {}
impl PNSCopying for INVoiceShortcut {}
impl INSObject for INVoiceShortcut {}
impl PNSObject for INVoiceShortcut {}
impl std::convert::TryFrom<NSObject> for INVoiceShortcut {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INVoiceShortcut, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INVoiceShortcut").unwrap()) };
        if is_kind_of {
            Ok(INVoiceShortcut(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INVoiceShortcut")
        }
    }
}
impl IINVoiceShortcut for INVoiceShortcut {}
pub trait IINVoiceShortcut: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn identifier(&self) -> NSUUID
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, identifier)
    }
    unsafe fn invocationPhrase(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, invocationPhrase)
    }
    unsafe fn shortcut(&self) -> INShortcut
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, shortcut)
    }
    unsafe fn new() -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INVoiceShortcut").unwrap(), new)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INVoiceShortcutCenter(pub id);
impl std::ops::Deref for INVoiceShortcutCenter {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INVoiceShortcutCenter {}
impl INVoiceShortcutCenter {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INVoiceShortcutCenter").unwrap(), alloc) })
    }
}
impl INSObject for INVoiceShortcutCenter {}
impl PNSObject for INVoiceShortcutCenter {}
impl std::convert::TryFrom<NSObject> for INVoiceShortcutCenter {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INVoiceShortcutCenter, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INVoiceShortcutCenter").unwrap()) };
        if is_kind_of {
            Ok(INVoiceShortcutCenter(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INVoiceShortcutCenter")
        }
    }
}
impl IINVoiceShortcutCenter for INVoiceShortcutCenter {}
pub trait IINVoiceShortcutCenter: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn getAllVoiceShortcutsWithCompletion_(
        &self,
        completionHandler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, getAllVoiceShortcutsWithCompletion : completionHandler)
    }
    unsafe fn getVoiceShortcutWithIdentifier_completion_(
        &self,
        identifier: NSUUID,
        completionHandler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, getVoiceShortcutWithIdentifier : identifier, completion : completionHandler)
    }
    unsafe fn setShortcutSuggestions_(&self, suggestions: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setShortcutSuggestions : suggestions)
    }
    unsafe fn new() -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INVoiceShortcutCenter").unwrap(), new)
    }
    unsafe fn sharedCenter() -> INVoiceShortcutCenter
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"INVoiceShortcutCenter").unwrap(), sharedCenter)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct INMediaItem(pub id);
impl std::ops::Deref for INMediaItem {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for INMediaItem {}
impl INMediaItem {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"INMediaItem").unwrap(), alloc) })
    }
}
impl PNSCopying for INMediaItem {}
impl PNSSecureCoding for INMediaItem {}
impl INSObject for INMediaItem {}
impl PNSObject for INMediaItem {}
impl std::convert::TryFrom<NSObject> for INMediaItem {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<INMediaItem, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"INMediaItem").unwrap()) };
        if is_kind_of {
            Ok(INMediaItem(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to INMediaItem")
        }
    }
}
impl IINMediaItem for INMediaItem {}
pub trait IINMediaItem: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithIdentifier_title_type_artwork_artist_(
        &self,
        identifier: NSString,
        title: NSString,
        type_: INMediaItemType,
        artwork: INImage,
        artist: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithIdentifier : identifier, title : title, r#type : type_, artwork : artwork, artist : artist)
    }
    unsafe fn initWithIdentifier_title_type_artwork_(
        &self,
        identifier: NSString,
        title: NSString,
        type_: INMediaItemType,
        artwork: INImage,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithIdentifier : identifier, title : title, r#type : type_, artwork : artwork)
    }
    unsafe fn identifier(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, identifier)
    }
    unsafe fn title(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, title)
    }
    unsafe fn type_(&self) -> INMediaItemType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, type)
    }
    unsafe fn artwork(&self) -> INImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, artwork)
    }
    unsafe fn artist(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, artist)
    }
}
impl INSendMessageIntent_UserNotifications for INSendMessageIntent {}
pub trait INSendMessageIntent_UserNotifications: Sized + std::ops::Deref {}
impl INStartCallIntent_UserNotifications for INStartCallIntent {}
pub trait INStartCallIntent_UserNotifications: Sized + std::ops::Deref {}
impl INPerson_Deprecated for INPerson {}
pub trait INPerson_Deprecated: Sized + std::ops::Deref {
    unsafe fn initWithHandle_nameComponents_contactIdentifier_(
        &self,
        handle: NSString,
        nameComponents: NSPersonNameComponents,
        contactIdentifier: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithHandle : handle, nameComponents : nameComponents, contactIdentifier : contactIdentifier)
    }
    unsafe fn initWithHandle_displayName_contactIdentifier_(
        &self,
        handle: NSString,
        displayName: NSString,
        contactIdentifier: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithHandle : handle, displayName : displayName, contactIdentifier : contactIdentifier)
    }
    unsafe fn initWithHandle_nameComponents_displayName_image_contactIdentifier_(
        &self,
        handle: NSString,
        nameComponents: NSPersonNameComponents,
        displayName: NSString,
        image: INImage,
        contactIdentifier: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithHandle : handle, nameComponents : nameComponents, displayName : displayName, image : image, contactIdentifier : contactIdentifier)
    }
    unsafe fn handle(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, handle)
    }
}
impl INRequestRideIntent_Deprecated for INRequestRideIntent {}
pub trait INRequestRideIntent_Deprecated: Sized + std::ops::Deref {
    unsafe fn initWithPickupLocation_dropOffLocation_rideOptionName_partySize_paymentMethod_(
        &self,
        pickupLocation: CLPlacemark,
        dropOffLocation: CLPlacemark,
        rideOptionName: INSpeakableString,
        partySize: NSNumber,
        paymentMethod: INPaymentMethod,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithPickupLocation : pickupLocation, dropOffLocation : dropOffLocation, rideOptionName : rideOptionName, partySize : partySize, paymentMethod : paymentMethod)
    }
}
impl INRideDriver_Deprecated for INRideDriver {}
pub trait INRideDriver_Deprecated: Sized + std::ops::Deref {
    unsafe fn initWithPersonHandle_nameComponents_displayName_image_rating_phoneNumber_(
        &self,
        personHandle: INPersonHandle,
        nameComponents: NSPersonNameComponents,
        displayName: NSString,
        image: INImage,
        rating: NSString,
        phoneNumber: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithPersonHandle : personHandle, nameComponents : nameComponents, displayName : displayName, image : image, rating : rating, phoneNumber : phoneNumber)
    }
    unsafe fn initWithHandle_displayName_image_rating_phoneNumber_(
        &self,
        handle: NSString,
        displayName: NSString,
        image: INImage,
        rating: NSString,
        phoneNumber: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithHandle : handle, displayName : displayName, image : image, rating : rating, phoneNumber : phoneNumber)
    }
    unsafe fn initWithHandle_nameComponents_image_rating_phoneNumber_(
        &self,
        handle: NSString,
        nameComponents: NSPersonNameComponents,
        image: INImage,
        rating: NSString,
        phoneNumber: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithHandle : handle, nameComponents : nameComponents, image : image, rating : rating, phoneNumber : phoneNumber)
    }
}
impl INSaveProfileInCarIntent_Deprecated for INSaveProfileInCarIntent {}
pub trait INSaveProfileInCarIntent_Deprecated: Sized + std::ops::Deref {
    unsafe fn initWithProfileNumber_profileLabel_(
        &self,
        profileNumber: NSNumber,
        profileLabel: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithProfileNumber : profileNumber, profileLabel : profileLabel)
    }
    unsafe fn profileLabel(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, profileLabel)
    }
}
impl INSearchCallHistoryIntent_Deprecated for INSearchCallHistoryIntent {}
pub trait INSearchCallHistoryIntent_Deprecated: Sized + std::ops::Deref {
    unsafe fn initWithCallType_dateCreated_recipient_callCapabilities_(
        &self,
        callType: INCallRecordType,
        dateCreated: INDateComponentsRange,
        recipient: INPerson,
        callCapabilities: INCallCapabilityOptions,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCallType : callType, dateCreated : dateCreated, recipient : recipient, callCapabilities : callCapabilities)
    }
    unsafe fn callType(&self) -> INCallRecordType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, callType)
    }
}
impl INStartAudioCallIntent_Deprecated for INStartAudioCallIntent {}
pub trait INStartAudioCallIntent_Deprecated: Sized + std::ops::Deref {
    unsafe fn initWithContacts_(&self, contacts: NSArray) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithContacts : contacts)
    }
}
impl INStartCallIntent_Deprecated for INStartCallIntent {}
pub trait INStartCallIntent_Deprecated: Sized + std::ops::Deref {
    unsafe fn initWithAudioRoute_destinationType_contacts_recordTypeForRedialing_callCapability_(
        &self,
        audioRoute: INCallAudioRoute,
        destinationType: INCallDestinationType,
        contacts: NSArray,
        recordTypeForRedialing: INCallRecordType,
        callCapability: INCallCapability,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithAudioRoute : audioRoute, destinationType : destinationType, contacts : contacts, recordTypeForRedialing : recordTypeForRedialing, callCapability : callCapability)
    }
    unsafe fn recordTypeForRedialing(&self) -> INCallRecordType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, recordTypeForRedialing)
    }
}
impl INSearchForMessagesIntent_DeprecatedSearchForMessages for INSearchForMessagesIntent {}
pub trait INSearchForMessagesIntent_DeprecatedSearchForMessages: Sized + std::ops::Deref {
    unsafe fn initWithRecipients_senders_searchTerms_attributes_dateTimeRange_identifiers_notificationIdentifiers_groupNames_(
        &self,
        recipients: NSArray,
        senders: NSArray,
        searchTerms: NSArray,
        attributes: INMessageAttributeOptions,
        dateTimeRange: INDateComponentsRange,
        identifiers: NSArray,
        notificationIdentifiers: NSArray,
        groupNames: NSArray,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithRecipients : recipients, senders : senders, searchTerms : searchTerms, attributes : attributes, dateTimeRange : dateTimeRange, identifiers : identifiers, notificationIdentifiers : notificationIdentifiers, groupNames : groupNames)
    }
    unsafe fn initWithRecipients_senders_searchTerms_attributes_dateTimeRange_identifiers_notificationIdentifiers_speakableGroupNames_(
        &self,
        recipients: NSArray,
        senders: NSArray,
        searchTerms: NSArray,
        attributes: INMessageAttributeOptions,
        dateTimeRange: INDateComponentsRange,
        identifiers: NSArray,
        notificationIdentifiers: NSArray,
        speakableGroupNames: NSArray,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithRecipients : recipients, senders : senders, searchTerms : searchTerms, attributes : attributes, dateTimeRange : dateTimeRange, identifiers : identifiers, notificationIdentifiers : notificationIdentifiers, speakableGroupNames : speakableGroupNames)
    }
    unsafe fn groupNames(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, groupNames)
    }
    unsafe fn groupNamesOperator(&self) -> INConditionalOperator
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, groupNamesOperator)
    }
}
impl INSendMessageIntent_Deprecated for INSendMessageIntent {}
pub trait INSendMessageIntent_Deprecated: Sized + std::ops::Deref {
    unsafe fn initWithRecipients_content_groupName_serviceName_sender_(
        &self,
        recipients: NSArray,
        content: NSString,
        groupName: NSString,
        serviceName: NSString,
        sender: INPerson,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithRecipients : recipients, content : content, groupName : groupName, serviceName : serviceName, sender : sender)
    }
    unsafe fn initWithRecipients_content_speakableGroupName_conversationIdentifier_serviceName_sender_(
        &self,
        recipients: NSArray,
        content: NSString,
        speakableGroupName: INSpeakableString,
        conversationIdentifier: NSString,
        serviceName: NSString,
        sender: INPerson,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithRecipients : recipients, content : content, speakableGroupName : speakableGroupName, conversationIdentifier : conversationIdentifier, serviceName : serviceName, sender : sender)
    }
    unsafe fn initWithRecipients_outgoingMessageType_content_speakableGroupName_conversationIdentifier_serviceName_sender_(
        &self,
        recipients: NSArray,
        outgoingMessageType: INOutgoingMessageType,
        content: NSString,
        speakableGroupName: INSpeakableString,
        conversationIdentifier: NSString,
        serviceName: NSString,
        sender: INPerson,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithRecipients : recipients, outgoingMessageType : outgoingMessageType, content : content, speakableGroupName : speakableGroupName, conversationIdentifier : conversationIdentifier, serviceName : serviceName, sender : sender)
    }
    unsafe fn groupName(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, groupName)
    }
}
impl INSetProfileInCarIntent_Deprecated for INSetProfileInCarIntent {}
pub trait INSetProfileInCarIntent_Deprecated: Sized + std::ops::Deref {
    unsafe fn initWithProfileNumber_profileLabel_defaultProfile_(
        &self,
        profileNumber: NSNumber,
        profileLabel: NSString,
        defaultProfile: NSNumber,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithProfileNumber : profileNumber, profileLabel : profileLabel, defaultProfile : defaultProfile)
    }
    unsafe fn initWithProfileNumber_profileName_defaultProfile_(
        &self,
        profileNumber: NSNumber,
        profileName: NSString,
        defaultProfile: NSNumber,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithProfileNumber : profileNumber, profileName : profileName, defaultProfile : defaultProfile)
    }
    unsafe fn profileLabel(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, profileLabel)
    }
}
impl INSetClimateSettingsInCarIntent_Deprecated for INSetClimateSettingsInCarIntent {}
pub trait INSetClimateSettingsInCarIntent_Deprecated: Sized + std::ops::Deref {
    unsafe fn initWithEnableFan_enableAirConditioner_enableClimateControl_enableAutoMode_airCirculationMode_fanSpeedIndex_fanSpeedPercentage_relativeFanSpeedSetting_temperature_relativeTemperatureSetting_climateZone_(
        &self,
        enableFan: NSNumber,
        enableAirConditioner: NSNumber,
        enableClimateControl: NSNumber,
        enableAutoMode: NSNumber,
        airCirculationMode: INCarAirCirculationMode,
        fanSpeedIndex: NSNumber,
        fanSpeedPercentage: NSNumber,
        relativeFanSpeedSetting: INRelativeSetting,
        temperature: NSMeasurement,
        relativeTemperatureSetting: INRelativeSetting,
        climateZone: INCarSeat,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithEnableFan : enableFan, enableAirConditioner : enableAirConditioner, enableClimateControl : enableClimateControl, enableAutoMode : enableAutoMode, airCirculationMode : airCirculationMode, fanSpeedIndex : fanSpeedIndex, fanSpeedPercentage : fanSpeedPercentage, relativeFanSpeedSetting : relativeFanSpeedSetting, temperature : temperature, relativeTemperatureSetting : relativeTemperatureSetting, climateZone : climateZone)
    }
}
impl INSetDefrosterSettingsInCarIntent_Deprecated for INSetDefrosterSettingsInCarIntent {}
pub trait INSetDefrosterSettingsInCarIntent_Deprecated: Sized + std::ops::Deref {
    unsafe fn initWithEnable_defroster_(
        &self,
        enable: NSNumber,
        defroster: INCarDefroster,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithEnable : enable, defroster : defroster)
    }
}
impl INSetSeatSettingsInCarIntent_Deprecated for INSetSeatSettingsInCarIntent {}
pub trait INSetSeatSettingsInCarIntent_Deprecated: Sized + std::ops::Deref {
    unsafe fn initWithEnableHeating_enableCooling_enableMassage_seat_level_relativeLevelSetting_(
        &self,
        enableHeating: NSNumber,
        enableCooling: NSNumber,
        enableMassage: NSNumber,
        seat: INCarSeat,
        level: NSNumber,
        relativeLevelSetting: INRelativeSetting,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithEnableHeating : enableHeating, enableCooling : enableCooling, enableMassage : enableMassage, seat : seat, level : level, relativeLevelSetting : relativeLevelSetting)
    }
}
impl INSearchForNotebookItemsIntent_Deprecated for INSearchForNotebookItemsIntent {}
pub trait INSearchForNotebookItemsIntent_Deprecated: Sized + std::ops::Deref {
    unsafe fn initWithTitle_content_itemType_status_location_locationSearchType_dateTime_dateSearchType_(
        &self,
        title: INSpeakableString,
        content: NSString,
        itemType: INNotebookItemType,
        status: INTaskStatus,
        location: CLPlacemark,
        locationSearchType: INLocationSearchType,
        dateTime: INDateComponentsRange,
        dateSearchType: INDateSearchType,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithTitle : title, content : content, itemType : itemType, status : status, location : location, locationSearchType : locationSearchType, dateTime : dateTime, dateSearchType : dateSearchType)
    }
    unsafe fn initWithTitle_content_itemType_status_location_locationSearchType_dateTime_dateSearchType_notebookItemIdentifier_(
        &self,
        title: INSpeakableString,
        content: NSString,
        itemType: INNotebookItemType,
        status: INTaskStatus,
        location: CLPlacemark,
        locationSearchType: INLocationSearchType,
        dateTime: INDateComponentsRange,
        dateSearchType: INDateSearchType,
        notebookItemIdentifier: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithTitle : title, content : content, itemType : itemType, status : status, location : location, locationSearchType : locationSearchType, dateTime : dateTime, dateSearchType : dateSearchType, notebookItemIdentifier : notebookItemIdentifier)
    }
}
impl INPlayMediaIntent_Deprecated for INPlayMediaIntent {}
pub trait INPlayMediaIntent_Deprecated: Sized + std::ops::Deref {
    unsafe fn initWithMediaItems_mediaContainer_playShuffled_playbackRepeatMode_resumePlayback_(
        &self,
        mediaItems: NSArray,
        mediaContainer: INMediaItem,
        playShuffled: NSNumber,
        playbackRepeatMode: INPlaybackRepeatMode,
        resumePlayback: NSNumber,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithMediaItems : mediaItems, mediaContainer : mediaContainer, playShuffled : playShuffled, playbackRepeatMode : playbackRepeatMode, resumePlayback : resumePlayback)
    }
}
impl INSetTaskAttributeIntent_Deprecated for INSetTaskAttributeIntent {}
pub trait INSetTaskAttributeIntent_Deprecated: Sized + std::ops::Deref {
    unsafe fn initWithTargetTask_status_spatialEventTrigger_temporalEventTrigger_(
        &self,
        targetTask: INTask,
        status: INTaskStatus,
        spatialEventTrigger: INSpatialEventTrigger,
        temporalEventTrigger: INTemporalEventTrigger,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithTargetTask : targetTask, status : status, spatialEventTrigger : spatialEventTrigger, temporalEventTrigger : temporalEventTrigger)
    }
}
impl INAddTasksIntent_Deprecated for INAddTasksIntent {}
pub trait INAddTasksIntent_Deprecated: Sized + std::ops::Deref {
    unsafe fn initWithTargetTaskList_taskTitles_spatialEventTrigger_temporalEventTrigger_(
        &self,
        targetTaskList: INTaskList,
        taskTitles: NSArray,
        spatialEventTrigger: INSpatialEventTrigger,
        temporalEventTrigger: INTemporalEventTrigger,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithTargetTaskList : targetTaskList, taskTitles : taskTitles, spatialEventTrigger : spatialEventTrigger, temporalEventTrigger : temporalEventTrigger)
    }
}
impl INMediaSearch_Deprecated for INMediaSearch {}
pub trait INMediaSearch_Deprecated: Sized + std::ops::Deref {
    unsafe fn activityNames(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, activityNames)
    }
}
impl INCallRecord_Deprecated for INCallRecord {}
pub trait INCallRecord_Deprecated: Sized + std::ops::Deref {
    unsafe fn initWithIdentifier_dateCreated_caller_callRecordType_callCapability_callDuration_unseen_(
        &self,
        identifier: NSString,
        dateCreated: NSDate,
        caller: INPerson,
        callRecordType: INCallRecordType,
        callCapability: INCallCapability,
        callDuration: NSNumber,
        unseen: NSNumber,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithIdentifier : identifier, dateCreated : dateCreated, caller : caller, callRecordType : callRecordType, callCapability : callCapability, callDuration : callDuration, unseen : unseen)
    }
    unsafe fn initWithIdentifier_dateCreated_caller_callRecordType_callCapability_callDuration_unseen_numberOfCalls_(
        &self,
        identifier: NSString,
        dateCreated: NSDate,
        caller: INPerson,
        callRecordType: INCallRecordType,
        callCapability: INCallCapability,
        callDuration: NSNumber,
        unseen: NSNumber,
        numberOfCalls: NSNumber,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithIdentifier : identifier, dateCreated : dateCreated, caller : caller, callRecordType : callRecordType, callCapability : callCapability, callDuration : callDuration, unseen : unseen, numberOfCalls : numberOfCalls)
    }
    unsafe fn caller(&self) -> INPerson
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, caller)
    }
}
impl INSendMessageIntentResponse_Deprecated for INSendMessageIntentResponse {}
pub trait INSendMessageIntentResponse_Deprecated: Sized + std::ops::Deref {
    unsafe fn sentMessage(&self) -> INMessage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sentMessage)
    }
    unsafe fn setSentMessage_(&self, sentMessage: INMessage)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSentMessage : sentMessage)
    }
}
unsafe extern "C" {
    pub static mut IntentsVersionNumber: f64;
}
unsafe extern "C" {
    pub static IntentsVersionString: [::std::os::raw::c_uchar; 0usize];
}
unsafe extern "C" {
    pub static INIntentErrorDomain: NSString;
}
unsafe extern "C" {
    pub static INStartAudioCallIntentIdentifier: NSString;
}
unsafe extern "C" {
    pub static INStartVideoCallIntentIdentifier: NSString;
}
unsafe extern "C" {
    pub static INSearchCallHistoryIntentIdentifier: NSString;
}
unsafe extern "C" {
    pub static INStartCallIntentIdentifier: NSString;
}
unsafe extern "C" {
    pub static INAnswerCallIntentIdentifier: NSString;
}
unsafe extern "C" {
    pub static INHangUpCallIntentIdentifier: NSString;
}
unsafe extern "C" {
    pub static INSetAudioSourceInCarIntentIdentifier: NSString;
}
unsafe extern "C" {
    pub static INSetClimateSettingsInCarIntentIdentifier: NSString;
}
unsafe extern "C" {
    pub static INSetDefrosterSettingsInCarIntentIdentifier: NSString;
}
unsafe extern "C" {
    pub static INSetSeatSettingsInCarIntentIdentifier: NSString;
}
unsafe extern "C" {
    pub static INSetProfileInCarIntentIdentifier: NSString;
}
unsafe extern "C" {
    pub static INSaveProfileInCarIntentIdentifier: NSString;
}
unsafe extern "C" {
    pub static INStartWorkoutIntentIdentifier: NSString;
}
unsafe extern "C" {
    pub static INPauseWorkoutIntentIdentifier: NSString;
}
unsafe extern "C" {
    pub static INEndWorkoutIntentIdentifier: NSString;
}
unsafe extern "C" {
    pub static INCancelWorkoutIntentIdentifier: NSString;
}
unsafe extern "C" {
    pub static INResumeWorkoutIntentIdentifier: NSString;
}
unsafe extern "C" {
    pub static INSetRadioStationIntentIdentifier: NSString;
}
unsafe extern "C" {
    pub static INSendMessageIntentIdentifier: NSString;
}
unsafe extern "C" {
    pub static INSearchForMessagesIntentIdentifier: NSString;
}
unsafe extern "C" {
    pub static INSetMessageAttributeIntentIdentifier: NSString;
}
unsafe extern "C" {
    pub static INSendPaymentIntentIdentifier: NSString;
}
unsafe extern "C" {
    pub static INRequestPaymentIntentIdentifier: NSString;
}
unsafe extern "C" {
    pub static INSearchForPhotosIntentIdentifier: NSString;
}
unsafe extern "C" {
    pub static INStartPhotoPlaybackIntentIdentifier: NSString;
}
unsafe extern "C" {
    pub static INListRideOptionsIntentIdentifier: NSString;
}
unsafe extern "C" {
    pub static INRequestRideIntentIdentifier: NSString;
}
unsafe extern "C" {
    pub static INGetRideStatusIntentIdentifier: NSString;
}
unsafe extern "C" {
    pub static INCarChargingConnectorTypeJ1772: INCarChargingConnectorType;
}
unsafe extern "C" {
    pub static INCarChargingConnectorTypeCCS1: INCarChargingConnectorType;
}
unsafe extern "C" {
    pub static INCarChargingConnectorTypeCCS2: INCarChargingConnectorType;
}
unsafe extern "C" {
    pub static INCarChargingConnectorTypeCHAdeMO: INCarChargingConnectorType;
}
unsafe extern "C" {
    pub static INCarChargingConnectorTypeGBTAC: INCarChargingConnectorType;
}
unsafe extern "C" {
    pub static INCarChargingConnectorTypeGBTDC: INCarChargingConnectorType;
}
unsafe extern "C" {
    pub static INCarChargingConnectorTypeTesla: INCarChargingConnectorType;
}
unsafe extern "C" {
    pub static INCarChargingConnectorTypeMennekes: INCarChargingConnectorType;
}
unsafe extern "C" {
    pub static INCarChargingConnectorTypeNACSDC: INCarChargingConnectorType;
}
unsafe extern "C" {
    pub static INCarChargingConnectorTypeNACSAC: INCarChargingConnectorType;
}
unsafe extern "C" {
    pub static INPersonHandleLabelHome: INPersonHandleLabel;
}
unsafe extern "C" {
    pub static INPersonHandleLabelWork: INPersonHandleLabel;
}
unsafe extern "C" {
    pub static INPersonHandleLabeliPhone: INPersonHandleLabel;
}
unsafe extern "C" {
    pub static INPersonHandleLabelMobile: INPersonHandleLabel;
}
unsafe extern "C" {
    pub static INPersonHandleLabelMain: INPersonHandleLabel;
}
unsafe extern "C" {
    pub static INPersonHandleLabelHomeFax: INPersonHandleLabel;
}
unsafe extern "C" {
    pub static INPersonHandleLabelWorkFax: INPersonHandleLabel;
}
unsafe extern "C" {
    pub static INPersonHandleLabelPager: INPersonHandleLabel;
}
unsafe extern "C" {
    pub static INPersonHandleLabelOther: INPersonHandleLabel;
}
unsafe extern "C" {
    pub static INPersonHandleLabelSchool: INPersonHandleLabel;
}
unsafe extern "C" {
    pub static INPersonRelationshipFather: INPersonRelationship;
}
unsafe extern "C" {
    pub static INPersonRelationshipMother: INPersonRelationship;
}
unsafe extern "C" {
    pub static INPersonRelationshipParent: INPersonRelationship;
}
unsafe extern "C" {
    pub static INPersonRelationshipBrother: INPersonRelationship;
}
unsafe extern "C" {
    pub static INPersonRelationshipSister: INPersonRelationship;
}
unsafe extern "C" {
    pub static INPersonRelationshipChild: INPersonRelationship;
}
unsafe extern "C" {
    pub static INPersonRelationshipFriend: INPersonRelationship;
}
unsafe extern "C" {
    pub static INPersonRelationshipSpouse: INPersonRelationship;
}
unsafe extern "C" {
    pub static INPersonRelationshipPartner: INPersonRelationship;
}
unsafe extern "C" {
    pub static INPersonRelationshipAssistant: INPersonRelationship;
}
unsafe extern "C" {
    pub static INPersonRelationshipManager: INPersonRelationship;
}
unsafe extern "C" {
    pub static INPersonRelationshipSon: INPersonRelationship;
}
unsafe extern "C" {
    pub static INPersonRelationshipDaughter: INPersonRelationship;
}
unsafe extern "C" {
    pub static INWorkoutNameIdentifierRun: INWorkoutNameIdentifier;
}
unsafe extern "C" {
    pub static INWorkoutNameIdentifierSit: INWorkoutNameIdentifier;
}
unsafe extern "C" {
    pub static INWorkoutNameIdentifierSteps: INWorkoutNameIdentifier;
}
unsafe extern "C" {
    pub static INWorkoutNameIdentifierStand: INWorkoutNameIdentifier;
}
unsafe extern "C" {
    pub static INWorkoutNameIdentifierMove: INWorkoutNameIdentifier;
}
unsafe extern "C" {
    pub static INWorkoutNameIdentifierWalk: INWorkoutNameIdentifier;
}
unsafe extern "C" {
    pub static INWorkoutNameIdentifierYoga: INWorkoutNameIdentifier;
}
unsafe extern "C" {
    pub static INWorkoutNameIdentifierDance: INWorkoutNameIdentifier;
}
unsafe extern "C" {
    pub static INWorkoutNameIdentifierCrosstraining: INWorkoutNameIdentifier;
}
unsafe extern "C" {
    pub static INWorkoutNameIdentifierElliptical: INWorkoutNameIdentifier;
}
unsafe extern "C" {
    pub static INWorkoutNameIdentifierRower: INWorkoutNameIdentifier;
}
unsafe extern "C" {
    pub static INWorkoutNameIdentifierCycle: INWorkoutNameIdentifier;
}
unsafe extern "C" {
    pub static INWorkoutNameIdentifierStairs: INWorkoutNameIdentifier;
}
unsafe extern "C" {
    pub static INWorkoutNameIdentifierOther: INWorkoutNameIdentifier;
}
unsafe extern "C" {
    pub static INWorkoutNameIdentifierIndoorrun: INWorkoutNameIdentifier;
}
unsafe extern "C" {
    pub static INWorkoutNameIdentifierIndoorcycle: INWorkoutNameIdentifier;
}
unsafe extern "C" {
    pub static INWorkoutNameIdentifierIndoorwalk: INWorkoutNameIdentifier;
}
unsafe extern "C" {
    pub static INWorkoutNameIdentifierExercise: INWorkoutNameIdentifier;
}
unsafe extern "C" {
    pub static INWorkoutNameIdentifierHike: INWorkoutNameIdentifier;
}
unsafe extern "C" {
    pub static INWorkoutNameIdentifierHighIntensityIntervalTraining: INWorkoutNameIdentifier;
}
unsafe extern "C" {
    pub static INWorkoutNameIdentifierSwim: INWorkoutNameIdentifier;
}

unsafe impl objc2::encode::RefEncode for INIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INIntentResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INIntentResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INAnswerCallIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INAnswerCallIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INHangUpCallIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INHangUpCallIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSearchCallHistoryIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSearchCallHistoryIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INStartAudioCallIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INStartAudioCallIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INStartCallIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INStartCallIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INStartVideoCallIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INStartVideoCallIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INActivateCarSignalIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INActivateCarSignalIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INGetCarLockStatusIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INGetCarLockStatusIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INGetCarPowerLevelStatusIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INGetCarPowerLevelStatusIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INListCarsIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INListCarsIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSaveProfileInCarIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSaveProfileInCarIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSetAudioSourceInCarIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSetAudioSourceInCarIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSetCarLockStatusIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSetCarLockStatusIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSetClimateSettingsInCarIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSetClimateSettingsInCarIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSetDefrosterSettingsInCarIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSetDefrosterSettingsInCarIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSetProfileInCarIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSetProfileInCarIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSetSeatSettingsInCarIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSetSeatSettingsInCarIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INCancelWorkoutIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INCancelWorkoutIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INEndWorkoutIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INEndWorkoutIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INPauseWorkoutIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INPauseWorkoutIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INResumeWorkoutIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INResumeWorkoutIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INStartWorkoutIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INStartWorkoutIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INShareFocusStatusIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INShareFocusStatusIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INAddMediaIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INAddMediaIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INPlayMediaIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INPlayMediaIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSearchForMediaIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSearchForMediaIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INUpdateMediaAffinityIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INUpdateMediaAffinityIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSetRadioStationIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSetRadioStationIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INEditMessageIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INEditMessageIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSearchForMessagesIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSearchForMessagesIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSendMessageIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSendMessageIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSetMessageAttributeIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSetMessageAttributeIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INUnsendMessagesIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INUnsendMessagesIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INAddTasksIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INAddTasksIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INAppendToNoteIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INAppendToNoteIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INCreateNoteIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INCreateNoteIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INCreateTaskListIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INCreateTaskListIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INDeleteTasksIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INDeleteTasksIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSearchForNotebookItemsIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSearchForNotebookItemsIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSetTaskAttributeIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSetTaskAttributeIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSnoozeTasksIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSnoozeTasksIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INPayBillIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INPayBillIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INRequestPaymentIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INRequestPaymentIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSearchForAccountsIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSearchForAccountsIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSearchForBillsIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSearchForBillsIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSendPaymentIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSendPaymentIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INTransferMoneyIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INTransferMoneyIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSearchForPhotosIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSearchForPhotosIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INStartPhotoPlaybackIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INStartPhotoPlaybackIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INGetReservationDetailsIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INGetReservationDetailsIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INGetRideStatusIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INGetRideStatusIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INListRideOptionsIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INListRideOptionsIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INRequestRideIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INRequestRideIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INCancelRideIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INCancelRideIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSendRideFeedbackIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSendRideFeedbackIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INGetVisualCodeIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INGetVisualCodeIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INInteraction {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INInteraction {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INParameter {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INParameter {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INObjectSection {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INObjectSection {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INObjectCollection {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INObjectCollection {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INAnswerCallIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INAnswerCallIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INHangUpCallIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INHangUpCallIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSearchCallHistoryIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSearchCallHistoryIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INStartAudioCallIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INStartAudioCallIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INStartCallIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INStartCallIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INStartVideoCallIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INStartVideoCallIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INActivateCarSignalIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INActivateCarSignalIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INGetCarLockStatusIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INGetCarLockStatusIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INGetCarPowerLevelStatusIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INGetCarPowerLevelStatusIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INListCarsIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INListCarsIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSaveProfileInCarIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSaveProfileInCarIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSetAudioSourceInCarIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSetAudioSourceInCarIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSetCarLockStatusIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSetCarLockStatusIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSetClimateSettingsInCarIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSetClimateSettingsInCarIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSetDefrosterSettingsInCarIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSetDefrosterSettingsInCarIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSetProfileInCarIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSetProfileInCarIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSetSeatSettingsInCarIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSetSeatSettingsInCarIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INCancelWorkoutIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INCancelWorkoutIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INEndWorkoutIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INEndWorkoutIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INPauseWorkoutIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INPauseWorkoutIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INResumeWorkoutIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INResumeWorkoutIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INStartWorkoutIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INStartWorkoutIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INShareFocusStatusIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INShareFocusStatusIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INAddMediaIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INAddMediaIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INPlayMediaIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INPlayMediaIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSearchForMediaIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSearchForMediaIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INUpdateMediaAffinityIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INUpdateMediaAffinityIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSetRadioStationIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSetRadioStationIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INEditMessageIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INEditMessageIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSearchForMessagesIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSearchForMessagesIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSendMessageIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSendMessageIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSetMessageAttributeIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSetMessageAttributeIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INUnsendMessagesIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INUnsendMessagesIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INAddTasksIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INAddTasksIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INAppendToNoteIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INAppendToNoteIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INCreateNoteIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INCreateNoteIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INCreateTaskListIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INCreateTaskListIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INDeleteTasksIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INDeleteTasksIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSearchForNotebookItemsIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSearchForNotebookItemsIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSetTaskAttributeIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSetTaskAttributeIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSnoozeTasksIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSnoozeTasksIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INPayBillIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INPayBillIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INRequestPaymentIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INRequestPaymentIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSearchForAccountsIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSearchForAccountsIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSearchForBillsIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSearchForBillsIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSendPaymentIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSendPaymentIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INTransferMoneyIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INTransferMoneyIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSearchForPhotosIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSearchForPhotosIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INStartPhotoPlaybackIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INStartPhotoPlaybackIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INGetReservationDetailsIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INGetReservationDetailsIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INGetRideStatusIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INGetRideStatusIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INListRideOptionsIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INListRideOptionsIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INRequestRideIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INRequestRideIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INCancelRideIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INCancelRideIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSendRideFeedbackIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSendRideFeedbackIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INGetVisualCodeIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INGetVisualCodeIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INAccountTypeResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INAccountTypeResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INMediaDestinationResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INMediaDestinationResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INAddMediaMediaDestinationResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INAddMediaMediaDestinationResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INMediaItemResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INMediaItemResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INAddMediaMediaItemResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INAddMediaMediaItemResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INTaskListResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INTaskListResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INAddTasksTargetTaskListResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INAddTasksTargetTaskListResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INTemporalEventTriggerResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INTemporalEventTriggerResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INAddTasksTemporalEventTriggerResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INAddTasksTemporalEventTriggerResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INAirline {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INAirline {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INAirport {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INAirport {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INAirportGate {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INAirportGate {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INBalanceTypeResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INBalanceTypeResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INBillDetails {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INBillDetails {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INBillPayee {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INBillPayee {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INBillPayeeResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INBillPayeeResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INBillTypeResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INBillTypeResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INBoatTrip {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INBoatTrip {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INBusTrip {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INBusTrip {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INCallCapabilityResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INCallCapabilityResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INCallDestinationTypeResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INCallDestinationTypeResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INCallGroup {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INCallGroup {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INCallRecord {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INCallRecord {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INCallRecordFilter {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INCallRecordFilter {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INCallRecordResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INCallRecordResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INCallRecordTypeOptionsResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INCallRecordTypeOptionsResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INCallRecordTypeResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INCallRecordTypeResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INCar {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INCar {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INCarAirCirculationModeResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INCarAirCirculationModeResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INCarAudioSourceResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INCarAudioSourceResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INCarDefrosterResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INCarDefrosterResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INCarHeadUnit {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INCarHeadUnit {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INCarSeatResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INCarSeatResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INCarSignalOptionsResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INCarSignalOptionsResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INCurrencyAmountResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INCurrencyAmountResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INDateSearchTypeResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INDateSearchTypeResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INDeleteTasksTaskListResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INDeleteTasksTaskListResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INTaskResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INTaskResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INDeleteTasksTaskResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INDeleteTasksTaskResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INFileResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INFileResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INFlight {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INFlight {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INFocusStatus {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INFocusStatus {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INLocationSearchTypeResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INLocationSearchTypeResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INMediaAffinityTypeResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INMediaAffinityTypeResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INMediaDestination {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INMediaDestination {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INMediaSearch {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INMediaSearch {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INMessageAttributeOptionsResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INMessageAttributeOptionsResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INMessageAttributeResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INMessageAttributeResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INMessageLinkMetadata {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INMessageLinkMetadata {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INMessageReaction {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INMessageReaction {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INNote {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INNote {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INNoteContentResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INNoteContentResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INNoteContentTypeResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INNoteContentTypeResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INNoteResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INNoteResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INNotebookItemTypeResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INNotebookItemTypeResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INOutgoingMessageTypeResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INOutgoingMessageTypeResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INPaymentAccount {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INPaymentAccount {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INPaymentAccountResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INPaymentAccountResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INPaymentAmount {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INPaymentAmount {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INPaymentAmountResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INPaymentAmountResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INPaymentMethod {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INPaymentMethod {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INPaymentMethodResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INPaymentMethodResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INPaymentRecord {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INPaymentRecord {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INPaymentStatusResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INPaymentStatusResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INPlayMediaMediaItemResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INPlayMediaMediaItemResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INDoubleResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INDoubleResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INPlayMediaPlaybackSpeedResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INPlayMediaPlaybackSpeedResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INPlaybackQueueLocationResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INPlaybackQueueLocationResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INPlaybackRepeatModeResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INPlaybackRepeatModeResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INRadioTypeResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INRadioTypeResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INRelativeReferenceResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INRelativeReferenceResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INRelativeSettingResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INRelativeSettingResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INRentalCar {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INRentalCar {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INRequestPaymentCurrencyAmountResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INRequestPaymentCurrencyAmountResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INPersonResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INPersonResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INRequestPaymentPayerResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INRequestPaymentPayerResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSearchForMediaMediaItemResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSearchForMediaMediaItemResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSeat {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSeat {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSendMessageRecipientResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSendMessageRecipientResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSendPaymentCurrencyAmountResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSendPaymentCurrencyAmountResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSendPaymentPayeeResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSendPaymentPayeeResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSetTaskAttributeTemporalEventTriggerResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSetTaskAttributeTemporalEventTriggerResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSnoozeTasksTaskResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSnoozeTasksTaskResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSpatialEventTrigger {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSpatialEventTrigger {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSpatialEventTriggerResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSpatialEventTriggerResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INStartCallCallCapabilityResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INStartCallCallCapabilityResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INStartCallCallRecordToCallBackResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INStartCallCallRecordToCallBackResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INStartCallContactResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INStartCallContactResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSticker {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSticker {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INTask {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INTask {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INTaskList {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INTaskList {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INTaskPriorityResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INTaskPriorityResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INTaskStatusResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INTaskStatusResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INTemporalEventTrigger {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INTemporalEventTrigger {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INTemporalEventTriggerTypeOptionsResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INTemporalEventTriggerTypeOptionsResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INTicketedEvent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INTicketedEvent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INTrainTrip {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INTrainTrip {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INUpdateMediaAffinityMediaItemResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INUpdateMediaAffinityMediaItemResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INVisualCodeTypeResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INVisualCodeTypeResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INWorkoutGoalUnitTypeResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INWorkoutGoalUnitTypeResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INWorkoutLocationTypeResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INWorkoutLocationTypeResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INIntentDonationMetadata {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INIntentDonationMetadata {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSendMessageIntentDonationMetadata {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSendMessageIntentDonationMetadata {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INExtension {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INExtension {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INPersonHandle {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INPersonHandle {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INCurrencyAmount {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INCurrencyAmount {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INDateComponentsRange {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INDateComponentsRange {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INImage {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INImage {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSpeakableString {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSpeakableString {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INObject {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INObject {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INPerson {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INPerson {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INRecurrenceRule {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INRecurrenceRule {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INFile {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INFile {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INBooleanResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INBooleanResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INDateComponentsRangeResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INDateComponentsRangeResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INIntegerResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INIntegerResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INPlacemarkResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INPlacemarkResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSpeakableStringResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSpeakableStringResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INStringResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INStringResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INTemperatureResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INTemperatureResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INDateComponentsResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INDateComponentsResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INRestaurantResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INRestaurantResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INRestaurantGuestResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INRestaurantGuestResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INURLResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INURLResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INLengthResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INLengthResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INMassResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INMassResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INVolumeResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INVolumeResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSpeedResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSpeedResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INEnergyResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INEnergyResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INEnumResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INEnumResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INObjectResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INObjectResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INTimeIntervalResolutionResult {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INTimeIntervalResolutionResult {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INMessage {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INMessage {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INSendMessageAttachment {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INSendMessageAttachment {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INBalanceAmount {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INBalanceAmount {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INPriceRange {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INPriceRange {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INRideOption {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INRideOption {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INRideStatus {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INRideStatus {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INRideDriver {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INRideDriver {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INRideVehicle {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INRideVehicle {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INRideFareLineItem {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INRideFareLineItem {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INRidePartySizeOption {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INRidePartySizeOption {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INRideCompletionStatus {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INRideCompletionStatus {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INReservation {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INReservation {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INReservationAction {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INReservationAction {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INFlightReservation {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INFlightReservation {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INLodgingReservation {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INLodgingReservation {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INRentalCarReservation {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INRentalCarReservation {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INRestaurantReservation {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INRestaurantReservation {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INTicketedEventReservation {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INTicketedEventReservation {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INTrainReservation {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INTrainReservation {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INBusReservation {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INBusReservation {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INBoatReservation {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INBoatReservation {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INRestaurantGuest {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INRestaurantGuest {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INTermsAndConditions {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INTermsAndConditions {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INRestaurantGuestDisplayPreferences {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INRestaurantGuestDisplayPreferences {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INRestaurant {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INRestaurant {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INRestaurantOffer {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INRestaurantOffer {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INRestaurantReservationBooking {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INRestaurantReservationBooking {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INRestaurantReservationUserBooking {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INRestaurantReservationUserBooking {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INBookRestaurantReservationIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INBookRestaurantReservationIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INGetAvailableRestaurantReservationBookingsIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INGetAvailableRestaurantReservationBookingsIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INGetUserCurrentRestaurantReservationBookingsIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INGetUserCurrentRestaurantReservationBookingsIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INGetAvailableRestaurantReservationBookingDefaultsIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INGetAvailableRestaurantReservationBookingDefaultsIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INBookRestaurantReservationIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INBookRestaurantReservationIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INGetAvailableRestaurantReservationBookingsIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INGetAvailableRestaurantReservationBookingsIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INGetUserCurrentRestaurantReservationBookingsIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INGetUserCurrentRestaurantReservationBookingsIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INGetAvailableRestaurantReservationBookingDefaultsIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INGetAvailableRestaurantReservationBookingDefaultsIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INGetRestaurantGuestIntent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INGetRestaurantGuestIntent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INGetRestaurantGuestIntentResponse {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INGetRestaurantGuestIntentResponse {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INVocabulary {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INVocabulary {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INUpcomingMediaManager {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INUpcomingMediaManager {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INPreferences {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INPreferences {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INFocusStatusCenter {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INFocusStatusCenter {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INUserContext {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INUserContext {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INMediaUserContext {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INMediaUserContext {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INNoteContent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INNoteContent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INTextNoteContent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INTextNoteContent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INImageNoteContent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INImageNoteContent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INRelevanceProvider {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INRelevanceProvider {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INDateRelevanceProvider {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INDateRelevanceProvider {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INLocationRelevanceProvider {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INLocationRelevanceProvider {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INDailyRoutineRelevanceProvider {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INDailyRoutineRelevanceProvider {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INDefaultCardTemplate {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INDefaultCardTemplate {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INShortcut {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INShortcut {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INRelevantShortcut {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INRelevantShortcut {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INRelevantShortcutStore {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INRelevantShortcutStore {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INVoiceShortcut {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INVoiceShortcut {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INVoiceShortcutCenter {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INVoiceShortcutCenter {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for INMediaItem {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for INMediaItem {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
