//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use objc2_foundation::*;

use crate::*;

/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechsynthesizervoicename?language=objc)
#[deprecated = "Use AVSpeechSynthesizer in AVFoundation instead"]
// NS_TYPED_ENUM
pub type NSSpeechSynthesizerVoiceName = NSString;

/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsvoiceattributekey?language=objc)
#[deprecated = "Use AVSpeechSynthesizer in AVFoundation instead"]
// NS_TYPED_ENUM
pub type NSVoiceAttributeKey = NSString;

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsvoicename?language=objc)
    #[deprecated = "Use AVSpeechSynthesizer in AVFoundation instead"]
    pub static NSVoiceName: &'static NSVoiceAttributeKey;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsvoiceidentifier?language=objc)
    #[deprecated = "Use AVSpeechSynthesizer in AVFoundation instead"]
    pub static NSVoiceIdentifier: &'static NSVoiceAttributeKey;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsvoiceage?language=objc)
    #[deprecated = "Use AVSpeechSynthesizer in AVFoundation instead"]
    pub static NSVoiceAge: &'static NSVoiceAttributeKey;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsvoicegender?language=objc)
    #[deprecated = "Use AVSpeechSynthesizer in AVFoundation instead"]
    pub static NSVoiceGender: &'static NSVoiceAttributeKey;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsvoicedemotext?language=objc)
    #[deprecated = "Use AVSpeechSynthesizer in AVFoundation instead"]
    pub static NSVoiceDemoText: &'static NSVoiceAttributeKey;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsvoicelocaleidentifier?language=objc)
    pub static NSVoiceLocaleIdentifier: &'static NSVoiceAttributeKey;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsvoicesupportedcharacters?language=objc)
    pub static NSVoiceSupportedCharacters: &'static NSVoiceAttributeKey;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsvoiceindividuallyspokencharacters?language=objc)
    pub static NSVoiceIndividuallySpokenCharacters: &'static NSVoiceAttributeKey;
}

/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechdictionarykey?language=objc)
#[deprecated = "Use AVSpeechSynthesizer in AVFoundation instead"]
// NS_TYPED_ENUM
pub type NSSpeechDictionaryKey = NSString;

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechdictionarylocaleidentifier?language=objc)
    pub static NSSpeechDictionaryLocaleIdentifier: &'static NSSpeechDictionaryKey;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechdictionarymodificationdate?language=objc)
    pub static NSSpeechDictionaryModificationDate: &'static NSSpeechDictionaryKey;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechdictionarypronunciations?language=objc)
    pub static NSSpeechDictionaryPronunciations: &'static NSSpeechDictionaryKey;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechdictionaryabbreviations?language=objc)
    pub static NSSpeechDictionaryAbbreviations: &'static NSSpeechDictionaryKey;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechdictionaryentryspelling?language=objc)
    pub static NSSpeechDictionaryEntrySpelling: &'static NSSpeechDictionaryKey;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechdictionaryentryphonemes?language=objc)
    pub static NSSpeechDictionaryEntryPhonemes: &'static NSSpeechDictionaryKey;
}

/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsvoicegendername?language=objc)
#[deprecated = "Use AVSpeechSynthesizer in AVFoundation instead"]
// NS_TYPED_ENUM
pub type NSVoiceGenderName = NSString;

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsvoicegenderneuter?language=objc)
    #[deprecated = "Use AVSpeechSynthesizer in AVFoundation instead"]
    pub static NSVoiceGenderNeuter: &'static NSVoiceGenderName;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsvoicegendermale?language=objc)
    #[deprecated = "Use AVSpeechSynthesizer in AVFoundation instead"]
    pub static NSVoiceGenderMale: &'static NSVoiceGenderName;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsvoicegenderfemale?language=objc)
    #[deprecated = "Use AVSpeechSynthesizer in AVFoundation instead"]
    pub static NSVoiceGenderFemale: &'static NSVoiceGenderName;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsvoicegenderneutral?language=objc)
    pub static NSVoiceGenderNeutral: &'static NSVoiceGenderName;
}

/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechpropertykey?language=objc)
#[deprecated = "Use AVSpeechSynthesizer in AVFoundation instead"]
// NS_TYPED_ENUM
pub type NSSpeechPropertyKey = NSString;

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechstatusproperty?language=objc)
    pub static NSSpeechStatusProperty: &'static NSSpeechPropertyKey;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeecherrorsproperty?language=objc)
    pub static NSSpeechErrorsProperty: &'static NSSpeechPropertyKey;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechinputmodeproperty?language=objc)
    pub static NSSpeechInputModeProperty: &'static NSSpeechPropertyKey;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechcharactermodeproperty?language=objc)
    pub static NSSpeechCharacterModeProperty: &'static NSSpeechPropertyKey;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechnumbermodeproperty?language=objc)
    pub static NSSpeechNumberModeProperty: &'static NSSpeechPropertyKey;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechrateproperty?language=objc)
    pub static NSSpeechRateProperty: &'static NSSpeechPropertyKey;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechpitchbaseproperty?language=objc)
    pub static NSSpeechPitchBaseProperty: &'static NSSpeechPropertyKey;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechpitchmodproperty?language=objc)
    pub static NSSpeechPitchModProperty: &'static NSSpeechPropertyKey;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechvolumeproperty?language=objc)
    pub static NSSpeechVolumeProperty: &'static NSSpeechPropertyKey;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechsynthesizerinfoproperty?language=objc)
    pub static NSSpeechSynthesizerInfoProperty: &'static NSSpeechPropertyKey;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechrecentsyncproperty?language=objc)
    pub static NSSpeechRecentSyncProperty: &'static NSSpeechPropertyKey;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechphonemesymbolsproperty?language=objc)
    pub static NSSpeechPhonemeSymbolsProperty: &'static NSSpeechPropertyKey;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechcurrentvoiceproperty?language=objc)
    pub static NSSpeechCurrentVoiceProperty: &'static NSSpeechPropertyKey;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechcommanddelimiterproperty?language=objc)
    pub static NSSpeechCommandDelimiterProperty: &'static NSSpeechPropertyKey;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechresetproperty?language=objc)
    pub static NSSpeechResetProperty: &'static NSSpeechPropertyKey;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechoutputtofileurlproperty?language=objc)
    pub static NSSpeechOutputToFileURLProperty: &'static NSSpeechPropertyKey;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsvoicelanguage?language=objc)
    #[deprecated]
    pub static NSVoiceLanguage: &'static NSVoiceAttributeKey;
}

/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechboundary?language=objc)
// NS_ENUM
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct NSSpeechBoundary(pub NSUInteger);
impl NSSpeechBoundary {
    #[doc(alias = "NSSpeechImmediateBoundary")]
    #[deprecated = "Use AVSpeechSynthesizer in AVFoundation instead"]
    pub const ImmediateBoundary: Self = Self(0);
    #[doc(alias = "NSSpeechWordBoundary")]
    #[deprecated = "Use AVSpeechSynthesizer in AVFoundation instead"]
    pub const WordBoundary: Self = Self(1);
    #[doc(alias = "NSSpeechSentenceBoundary")]
    #[deprecated = "Use AVSpeechSynthesizer in AVFoundation instead"]
    pub const SentenceBoundary: Self = Self(2);
}

unsafe impl Encode for NSSpeechBoundary {
    const ENCODING: Encoding = NSUInteger::ENCODING;
}

unsafe impl RefEncode for NSSpeechBoundary {
    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}

extern_class!(
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechsynthesizer?language=objc)
    #[unsafe(super(NSObject))]
    #[derive(Debug, PartialEq, Eq, Hash)]
    #[deprecated = "Use AVSpeechSynthesizer in AVFoundation instead"]
    pub struct NSSpeechSynthesizer;
);

extern_conformance!(
    unsafe impl NSObjectProtocol for NSSpeechSynthesizer {}
);

impl NSSpeechSynthesizer {
    extern_methods!(
        #[deprecated = "Use AVSpeechSynthesizer in AVFoundation instead"]
        #[unsafe(method(initWithVoice:))]
        #[unsafe(method_family = init)]
        pub fn initWithVoice(
            this: Allocated<Self>,
            voice: Option<&NSSpeechSynthesizerVoiceName>,
        ) -> Option<Retained<Self>>;

        #[deprecated = "Use AVSpeechSynthesizer in AVFoundation instead"]
        #[unsafe(method(startSpeakingString:))]
        #[unsafe(method_family = none)]
        pub fn startSpeakingString(&self, string: &NSString) -> bool;

        #[deprecated = "Use AVSpeechSynthesizer in AVFoundation instead"]
        #[unsafe(method(startSpeakingString:toURL:))]
        #[unsafe(method_family = none)]
        pub fn startSpeakingString_toURL(&self, string: &NSString, url: &NSURL) -> bool;

        #[deprecated = "Use AVSpeechSynthesizer in AVFoundation instead"]
        #[unsafe(method(isSpeaking))]
        #[unsafe(method_family = none)]
        pub fn isSpeaking(&self) -> bool;

        #[deprecated = "Use AVSpeechSynthesizer in AVFoundation instead"]
        #[unsafe(method(stopSpeaking))]
        #[unsafe(method_family = none)]
        pub fn stopSpeaking(&self);

        #[unsafe(method(stopSpeakingAtBoundary:))]
        #[unsafe(method_family = none)]
        pub fn stopSpeakingAtBoundary(&self, boundary: NSSpeechBoundary);

        #[unsafe(method(pauseSpeakingAtBoundary:))]
        #[unsafe(method_family = none)]
        pub fn pauseSpeakingAtBoundary(&self, boundary: NSSpeechBoundary);

        #[unsafe(method(continueSpeaking))]
        #[unsafe(method_family = none)]
        pub fn continueSpeaking(&self);

        #[deprecated = "Use AVSpeechSynthesizer in AVFoundation instead"]
        #[unsafe(method(delegate))]
        #[unsafe(method_family = none)]
        pub fn delegate(
            &self,
            mtm: MainThreadMarker,
        ) -> Option<Retained<ProtocolObject<dyn NSSpeechSynthesizerDelegate>>>;

        /// Setter for [`delegate`][Self::delegate].
        ///
        /// This is a [weak property][objc2::topics::weak_property].
        #[deprecated = "Use AVSpeechSynthesizer in AVFoundation instead"]
        #[unsafe(method(setDelegate:))]
        #[unsafe(method_family = none)]
        pub fn setDelegate(
            &self,
            delegate: Option<&ProtocolObject<dyn NSSpeechSynthesizerDelegate>>,
        );

        #[deprecated = "Use AVSpeechSynthesizer in AVFoundation instead"]
        #[unsafe(method(voice))]
        #[unsafe(method_family = none)]
        pub fn voice(&self) -> Option<Retained<NSSpeechSynthesizerVoiceName>>;

        #[deprecated = "Use AVSpeechSynthesizer in AVFoundation instead"]
        #[unsafe(method(setVoice:))]
        #[unsafe(method_family = none)]
        pub fn setVoice(&self, voice: Option<&NSSpeechSynthesizerVoiceName>) -> bool;

        #[unsafe(method(rate))]
        #[unsafe(method_family = none)]
        pub fn rate(&self) -> c_float;

        /// Setter for [`rate`][Self::rate].
        #[unsafe(method(setRate:))]
        #[unsafe(method_family = none)]
        pub fn setRate(&self, rate: c_float);

        #[unsafe(method(volume))]
        #[unsafe(method_family = none)]
        pub fn volume(&self) -> c_float;

        /// Setter for [`volume`][Self::volume].
        #[unsafe(method(setVolume:))]
        #[unsafe(method_family = none)]
        pub fn setVolume(&self, volume: c_float);

        #[deprecated = "Use AVSpeechSynthesizer in AVFoundation instead"]
        #[unsafe(method(usesFeedbackWindow))]
        #[unsafe(method_family = none)]
        pub fn usesFeedbackWindow(&self) -> bool;

        /// Setter for [`usesFeedbackWindow`][Self::usesFeedbackWindow].
        #[deprecated = "Use AVSpeechSynthesizer in AVFoundation instead"]
        #[unsafe(method(setUsesFeedbackWindow:))]
        #[unsafe(method_family = none)]
        pub fn setUsesFeedbackWindow(&self, uses_feedback_window: bool);

        /// # Safety
        ///
        /// `speech_dictionary` generic should be of the correct type.
        #[unsafe(method(addSpeechDictionary:))]
        #[unsafe(method_family = none)]
        pub unsafe fn addSpeechDictionary(
            &self,
            speech_dictionary: &NSDictionary<NSSpeechDictionaryKey, AnyObject>,
        );

        #[unsafe(method(phonemesFromText:))]
        #[unsafe(method_family = none)]
        pub fn phonemesFromText(&self, text: &NSString) -> Retained<NSString>;

        #[unsafe(method(objectForProperty:error:_))]
        #[unsafe(method_family = none)]
        pub fn objectForProperty_error(
            &self,
            property: &NSSpeechPropertyKey,
        ) -> Result<Retained<AnyObject>, Retained<NSError>>;

        /// # Safety
        ///
        /// `object` should be of the correct type.
        #[unsafe(method(setObject:forProperty:error:_))]
        #[unsafe(method_family = none)]
        pub unsafe fn setObject_forProperty_error(
            &self,
            object: Option<&AnyObject>,
            property: &NSSpeechPropertyKey,
        ) -> Result<(), Retained<NSError>>;

        #[deprecated = "Use AVSpeechSynthesizer in AVFoundation instead"]
        #[unsafe(method(isAnyApplicationSpeaking))]
        #[unsafe(method_family = none)]
        pub fn isAnyApplicationSpeaking() -> bool;

        #[deprecated = "Use AVSpeechSynthesizer in AVFoundation instead"]
        #[unsafe(method(defaultVoice))]
        #[unsafe(method_family = none)]
        pub fn defaultVoice() -> Retained<NSSpeechSynthesizerVoiceName>;

        #[deprecated = "Use AVSpeechSynthesizer in AVFoundation instead"]
        #[unsafe(method(availableVoices))]
        #[unsafe(method_family = none)]
        pub fn availableVoices() -> Retained<NSArray<NSSpeechSynthesizerVoiceName>>;

        #[deprecated = "Use AVSpeechSynthesizer in AVFoundation instead"]
        #[unsafe(method(attributesForVoice:))]
        #[unsafe(method_family = none)]
        pub fn attributesForVoice(
            voice: &NSSpeechSynthesizerVoiceName,
        ) -> Retained<NSDictionary<NSVoiceAttributeKey, AnyObject>>;
    );
}

/// Methods declared on superclass `NSObject`.
impl NSSpeechSynthesizer {
    extern_methods!(
        #[unsafe(method(init))]
        #[unsafe(method_family = init)]
        pub fn init(this: Allocated<Self>) -> Retained<Self>;

        #[unsafe(method(new))]
        #[unsafe(method_family = new)]
        pub fn new() -> Retained<Self>;
    );
}

impl DefaultRetained for NSSpeechSynthesizer {
    #[inline]
    fn default_retained() -> Retained<Self> {
        Self::new()
    }
}

extern_protocol!(
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechsynthesizerdelegate?language=objc)
    #[deprecated = "Use AVSpeechSynthesizer in AVFoundation instead"]
    pub unsafe trait NSSpeechSynthesizerDelegate: NSObjectProtocol + MainThreadOnly {
        #[deprecated = "Use AVSpeechSynthesizer in AVFoundation instead"]
        #[optional]
        #[unsafe(method(speechSynthesizer:didFinishSpeaking:))]
        #[unsafe(method_family = none)]
        fn speechSynthesizer_didFinishSpeaking(
            &self,
            sender: &NSSpeechSynthesizer,
            finished_speaking: bool,
        );

        #[deprecated = "Use AVSpeechSynthesizer in AVFoundation instead"]
        #[optional]
        #[unsafe(method(speechSynthesizer:willSpeakWord:ofString:))]
        #[unsafe(method_family = none)]
        fn speechSynthesizer_willSpeakWord_ofString(
            &self,
            sender: &NSSpeechSynthesizer,
            character_range: NSRange,
            string: &NSString,
        );

        #[deprecated = "Use AVSpeechSynthesizer in AVFoundation instead"]
        #[optional]
        #[unsafe(method(speechSynthesizer:willSpeakPhoneme:))]
        #[unsafe(method_family = none)]
        fn speechSynthesizer_willSpeakPhoneme(
            &self,
            sender: &NSSpeechSynthesizer,
            phoneme_opcode: c_short,
        );

        #[optional]
        #[unsafe(method(speechSynthesizer:didEncounterErrorAtIndex:ofString:message:))]
        #[unsafe(method_family = none)]
        fn speechSynthesizer_didEncounterErrorAtIndex_ofString_message(
            &self,
            sender: &NSSpeechSynthesizer,
            character_index: NSUInteger,
            string: &NSString,
            message: &NSString,
        );

        #[optional]
        #[unsafe(method(speechSynthesizer:didEncounterSyncMessage:))]
        #[unsafe(method_family = none)]
        fn speechSynthesizer_didEncounterSyncMessage(
            &self,
            sender: &NSSpeechSynthesizer,
            message: &NSString,
        );
    }
);

/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechmode?language=objc)
#[deprecated = "Use AVSpeechSynthesizer in AVFoundation instead"]
// NS_TYPED_ENUM
pub type NSSpeechMode = NSString;

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechmodetext?language=objc)
    pub static NSSpeechModeText: &'static NSSpeechMode;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechmodephoneme?language=objc)
    pub static NSSpeechModePhoneme: &'static NSSpeechMode;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechmodenormal?language=objc)
    pub static NSSpeechModeNormal: &'static NSSpeechMode;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechmodeliteral?language=objc)
    pub static NSSpeechModeLiteral: &'static NSSpeechMode;
}

/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechstatuskey?language=objc)
#[deprecated = "Use AVSpeechSynthesizer in AVFoundation instead"]
// NS_TYPED_ENUM
pub type NSSpeechStatusKey = NSString;

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechstatusoutputbusy?language=objc)
    pub static NSSpeechStatusOutputBusy: &'static NSSpeechStatusKey;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechstatusoutputpaused?language=objc)
    pub static NSSpeechStatusOutputPaused: &'static NSSpeechStatusKey;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechstatusnumberofcharactersleft?language=objc)
    pub static NSSpeechStatusNumberOfCharactersLeft: &'static NSSpeechStatusKey;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechstatusphonemecode?language=objc)
    pub static NSSpeechStatusPhonemeCode: &'static NSSpeechStatusKey;
}

/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeecherrorkey?language=objc)
#[deprecated = "Use AVSpeechSynthesizer in AVFoundation instead"]
// NS_TYPED_ENUM
pub type NSSpeechErrorKey = NSString;

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeecherrorcount?language=objc)
    pub static NSSpeechErrorCount: &'static NSSpeechErrorKey;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeecherroroldestcode?language=objc)
    pub static NSSpeechErrorOldestCode: &'static NSSpeechErrorKey;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeecherroroldestcharacteroffset?language=objc)
    pub static NSSpeechErrorOldestCharacterOffset: &'static NSSpeechErrorKey;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeecherrornewestcode?language=objc)
    pub static NSSpeechErrorNewestCode: &'static NSSpeechErrorKey;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeecherrornewestcharacteroffset?language=objc)
    pub static NSSpeechErrorNewestCharacterOffset: &'static NSSpeechErrorKey;
}

/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechsynthesizerinfokey?language=objc)
#[deprecated = "Use AVSpeechSynthesizer in AVFoundation instead"]
// NS_TYPED_ENUM
pub type NSSpeechSynthesizerInfoKey = NSString;

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechsynthesizerinfoidentifier?language=objc)
    pub static NSSpeechSynthesizerInfoIdentifier: &'static NSSpeechSynthesizerInfoKey;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechsynthesizerinfoversion?language=objc)
    pub static NSSpeechSynthesizerInfoVersion: &'static NSSpeechSynthesizerInfoKey;
}

/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechphonemeinfokey?language=objc)
#[deprecated = "Use AVSpeechSynthesizer in AVFoundation instead"]
// NS_TYPED_ENUM
pub type NSSpeechPhonemeInfoKey = NSString;

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechphonemeinfoopcode?language=objc)
    pub static NSSpeechPhonemeInfoOpcode: &'static NSSpeechPhonemeInfoKey;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechphonemeinfosymbol?language=objc)
    pub static NSSpeechPhonemeInfoSymbol: &'static NSSpeechPhonemeInfoKey;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechphonemeinfoexample?language=objc)
    pub static NSSpeechPhonemeInfoExample: &'static NSSpeechPhonemeInfoKey;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechphonemeinfohilitestart?language=objc)
    pub static NSSpeechPhonemeInfoHiliteStart: &'static NSSpeechPhonemeInfoKey;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechphonemeinfohiliteend?language=objc)
    pub static NSSpeechPhonemeInfoHiliteEnd: &'static NSSpeechPhonemeInfoKey;
}

/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechcommanddelimiterkey?language=objc)
#[deprecated = "Use AVSpeechSynthesizer in AVFoundation instead"]
// NS_TYPED_ENUM
pub type NSSpeechCommandDelimiterKey = NSString;

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechcommandprefix?language=objc)
    pub static NSSpeechCommandPrefix: &'static NSSpeechCommandDelimiterKey;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspeechcommandsuffix?language=objc)
    pub static NSSpeechCommandSuffix: &'static NSSpeechCommandDelimiterKey;
}
