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

use crate::*;

extern "C" {
    pub static NSAccessibilityErrorCodeExceptionInfo: &'static NSString;
}

// NS_TYPED_ENUM
pub type NSAccessibilityAttributeName = NSString;

extern "C" {
    pub static NSAccessibilityRoleAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityRoleDescriptionAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilitySubroleAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityHelpAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityValueAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityMinValueAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityMaxValueAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityEnabledAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityFocusedAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityParentAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityChildrenAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityWindowAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityTopLevelUIElementAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilitySelectedChildrenAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityVisibleChildrenAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityPositionAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilitySizeAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityContentsAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityTitleAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityDescriptionAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityShownMenuAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityValueDescriptionAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilitySharedFocusElementsAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityPreviousContentsAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityNextContentsAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityHeaderAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityEditedAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityTabsAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityHorizontalScrollBarAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityVerticalScrollBarAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityOverflowButtonAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityIncrementButtonAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityDecrementButtonAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityFilenameAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityExpandedAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilitySelectedAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilitySplittersAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityDocumentAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityActivationPointAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityURLAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityIndexAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityRowCountAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityColumnCountAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityOrderedByRowAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityWarningValueAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityCriticalValueAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityPlaceholderValueAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityContainsProtectedContentAttribute:
        &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityAlternateUIVisibleAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityRequiredAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityTitleUIElementAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityServesAsTitleForUIElementsAttribute:
        &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityLinkedUIElementsAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilitySelectedTextAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilitySelectedTextRangeAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityNumberOfCharactersAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityVisibleCharacterRangeAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilitySharedTextUIElementsAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilitySharedCharacterRangeAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityInsertionPointLineNumberAttribute:
        &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilitySelectedTextRangesAttribute: &'static NSAccessibilityAttributeName;
}

// NS_TYPED_ENUM
pub type NSAccessibilityParameterizedAttributeName = NSString;

extern "C" {
    pub static NSAccessibilityLineForIndexParameterizedAttribute:
        &'static NSAccessibilityParameterizedAttributeName;
}

extern "C" {
    pub static NSAccessibilityRangeForLineParameterizedAttribute:
        &'static NSAccessibilityParameterizedAttributeName;
}

extern "C" {
    pub static NSAccessibilityStringForRangeParameterizedAttribute:
        &'static NSAccessibilityParameterizedAttributeName;
}

extern "C" {
    pub static NSAccessibilityRangeForPositionParameterizedAttribute:
        &'static NSAccessibilityParameterizedAttributeName;
}

extern "C" {
    pub static NSAccessibilityRangeForIndexParameterizedAttribute:
        &'static NSAccessibilityParameterizedAttributeName;
}

extern "C" {
    pub static NSAccessibilityBoundsForRangeParameterizedAttribute:
        &'static NSAccessibilityParameterizedAttributeName;
}

extern "C" {
    pub static NSAccessibilityRTFForRangeParameterizedAttribute:
        &'static NSAccessibilityParameterizedAttributeName;
}

extern "C" {
    pub static NSAccessibilityStyleRangeForIndexParameterizedAttribute:
        &'static NSAccessibilityParameterizedAttributeName;
}

extern "C" {
    pub static NSAccessibilityAttributedStringForRangeParameterizedAttribute:
        &'static NSAccessibilityParameterizedAttributeName;
}

extern "C" {
    pub static NSAccessibilityFontTextAttribute: &'static NSAttributedStringKey;
}

extern "C" {
    pub static NSAccessibilityForegroundColorTextAttribute: &'static NSAttributedStringKey;
}

extern "C" {
    pub static NSAccessibilityBackgroundColorTextAttribute: &'static NSAttributedStringKey;
}

extern "C" {
    pub static NSAccessibilityUnderlineColorTextAttribute: &'static NSAttributedStringKey;
}

extern "C" {
    pub static NSAccessibilityStrikethroughColorTextAttribute: &'static NSAttributedStringKey;
}

extern "C" {
    pub static NSAccessibilityUnderlineTextAttribute: &'static NSAttributedStringKey;
}

extern "C" {
    pub static NSAccessibilitySuperscriptTextAttribute: &'static NSAttributedStringKey;
}

extern "C" {
    pub static NSAccessibilityStrikethroughTextAttribute: &'static NSAttributedStringKey;
}

extern "C" {
    pub static NSAccessibilityShadowTextAttribute: &'static NSAttributedStringKey;
}

extern "C" {
    pub static NSAccessibilityAttachmentTextAttribute: &'static NSAttributedStringKey;
}

extern "C" {
    pub static NSAccessibilityLinkTextAttribute: &'static NSAttributedStringKey;
}

extern "C" {
    pub static NSAccessibilityAutocorrectedTextAttribute: &'static NSAttributedStringKey;
}

extern "C" {
    pub static NSAccessibilityTextAlignmentAttribute: &'static NSAttributedStringKey;
}

extern "C" {
    pub static NSAccessibilityListItemPrefixTextAttribute: &'static NSAttributedStringKey;
}

extern "C" {
    pub static NSAccessibilityListItemIndexTextAttribute: &'static NSAttributedStringKey;
}

extern "C" {
    pub static NSAccessibilityListItemLevelTextAttribute: &'static NSAttributedStringKey;
}

extern "C" {
    pub static NSAccessibilityMisspelledTextAttribute: &'static NSAttributedStringKey;
}

extern "C" {
    pub static NSAccessibilityMarkedMisspelledTextAttribute: &'static NSAttributedStringKey;
}

extern "C" {
    pub static NSAccessibilityLanguageTextAttribute: &'static NSAttributedStringKey;
}

extern "C" {
    pub static NSAccessibilityCustomTextAttribute: &'static NSAttributedStringKey;
}

extern "C" {
    pub static NSAccessibilityAnnotationTextAttribute: &'static NSAttributedStringKey;
}

// NS_TYPED_ENUM
pub type NSAccessibilityAnnotationAttributeKey = NSString;

extern "C" {
    pub static NSAccessibilityAnnotationLabel: &'static NSAccessibilityAnnotationAttributeKey;
}

extern "C" {
    pub static NSAccessibilityAnnotationElement: &'static NSAccessibilityAnnotationAttributeKey;
}

extern "C" {
    pub static NSAccessibilityAnnotationLocation: &'static NSAccessibilityAnnotationAttributeKey;
}

// NS_ENUM
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct NSAccessibilityAnnotationPosition(pub NSInteger);
impl NSAccessibilityAnnotationPosition {
    #[doc(alias = "NSAccessibilityAnnotationPositionFullRange")]
    pub const FullRange: Self = Self(0);
    #[doc(alias = "NSAccessibilityAnnotationPositionStart")]
    pub const Start: Self = Self(1);
    #[doc(alias = "NSAccessibilityAnnotationPositionEnd")]
    pub const End: Self = Self(2);
}

unsafe impl Encode for NSAccessibilityAnnotationPosition {
    const ENCODING: Encoding = NSInteger::ENCODING;
}

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

// NS_TYPED_ENUM
pub type NSAccessibilityFontAttributeKey = NSString;

extern "C" {
    pub static NSAccessibilityFontNameKey: &'static NSAccessibilityFontAttributeKey;
}

extern "C" {
    pub static NSAccessibilityFontFamilyKey: &'static NSAccessibilityFontAttributeKey;
}

extern "C" {
    pub static NSAccessibilityVisibleNameKey: &'static NSAccessibilityFontAttributeKey;
}

extern "C" {
    pub static NSAccessibilityFontSizeKey: &'static NSAccessibilityFontAttributeKey;
}

extern "C" {
    pub static NSAccessibilityMainAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityMinimizedAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityCloseButtonAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityZoomButtonAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityMinimizeButtonAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityToolbarButtonAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityProxyAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityGrowAreaAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityModalAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityDefaultButtonAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityCancelButtonAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityFullScreenButtonAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityMenuBarAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityWindowsAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityFrontmostAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityHiddenAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityMainWindowAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityFocusedWindowAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityFocusedUIElementAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityExtrasMenuBarAttribute: &'static NSAccessibilityAttributeName;
}

// NS_ENUM
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct NSAccessibilityOrientation(pub NSInteger);
impl NSAccessibilityOrientation {
    #[doc(alias = "NSAccessibilityOrientationUnknown")]
    pub const Unknown: Self = Self(0);
    #[doc(alias = "NSAccessibilityOrientationVertical")]
    pub const Vertical: Self = Self(1);
    #[doc(alias = "NSAccessibilityOrientationHorizontal")]
    pub const Horizontal: Self = Self(2);
}

unsafe impl Encode for NSAccessibilityOrientation {
    const ENCODING: Encoding = NSInteger::ENCODING;
}

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

extern "C" {
    pub static NSAccessibilityOrientationAttribute: &'static NSAccessibilityAttributeName;
}

// NS_TYPED_ENUM
pub type NSAccessibilityOrientationValue = NSString;

extern "C" {
    pub static NSAccessibilityVerticalOrientationValue: &'static NSAccessibilityOrientationValue;
}

extern "C" {
    pub static NSAccessibilityHorizontalOrientationValue: &'static NSAccessibilityOrientationValue;
}

extern "C" {
    pub static NSAccessibilityUnknownOrientationValue: &'static NSAccessibilityOrientationValue;
}

extern "C" {
    pub static NSAccessibilityColumnTitlesAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilitySearchButtonAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilitySearchMenuAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityClearButtonAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityRowsAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityVisibleRowsAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilitySelectedRowsAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityColumnsAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityVisibleColumnsAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilitySelectedColumnsAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilitySortDirectionAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilitySelectedCellsAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityVisibleCellsAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityRowHeaderUIElementsAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityColumnHeaderUIElementsAttribute:
        &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityCellForColumnAndRowParameterizedAttribute:
        &'static NSAccessibilityParameterizedAttributeName;
}

extern "C" {
    pub static NSAccessibilityRowIndexRangeAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityColumnIndexRangeAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityHorizontalUnitsAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityVerticalUnitsAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityHorizontalUnitDescriptionAttribute:
        &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityVerticalUnitDescriptionAttribute:
        &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityLayoutPointForScreenPointParameterizedAttribute:
        &'static NSAccessibilityParameterizedAttributeName;
}

extern "C" {
    pub static NSAccessibilityLayoutSizeForScreenSizeParameterizedAttribute:
        &'static NSAccessibilityParameterizedAttributeName;
}

extern "C" {
    pub static NSAccessibilityScreenPointForLayoutPointParameterizedAttribute:
        &'static NSAccessibilityParameterizedAttributeName;
}

extern "C" {
    pub static NSAccessibilityScreenSizeForLayoutSizeParameterizedAttribute:
        &'static NSAccessibilityParameterizedAttributeName;
}

extern "C" {
    pub static NSAccessibilityHandlesAttribute: &'static NSAccessibilityAttributeName;
}

// NS_TYPED_ENUM
pub type NSAccessibilitySortDirectionValue = NSString;

extern "C" {
    pub static NSAccessibilityAscendingSortDirectionValue:
        &'static NSAccessibilitySortDirectionValue;
}

extern "C" {
    pub static NSAccessibilityDescendingSortDirectionValue:
        &'static NSAccessibilitySortDirectionValue;
}

extern "C" {
    pub static NSAccessibilityUnknownSortDirectionValue: &'static NSAccessibilitySortDirectionValue;
}

// NS_ENUM
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct NSAccessibilitySortDirection(pub NSInteger);
impl NSAccessibilitySortDirection {
    #[doc(alias = "NSAccessibilitySortDirectionUnknown")]
    pub const Unknown: Self = Self(0);
    #[doc(alias = "NSAccessibilitySortDirectionAscending")]
    pub const Ascending: Self = Self(1);
    #[doc(alias = "NSAccessibilitySortDirectionDescending")]
    pub const Descending: Self = Self(2);
}

unsafe impl Encode for NSAccessibilitySortDirection {
    const ENCODING: Encoding = NSInteger::ENCODING;
}

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

extern "C" {
    pub static NSAccessibilityDisclosingAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityDisclosedRowsAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityDisclosedByRowAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityDisclosureLevelAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityAllowedValuesAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityLabelUIElementsAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityLabelValueAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityMatteHoleAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityMatteContentUIElementAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityMarkerUIElementsAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityMarkerValuesAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityMarkerGroupUIElementAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityUnitsAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityUnitDescriptionAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityMarkerTypeAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityMarkerTypeDescriptionAttribute: &'static NSAccessibilityAttributeName;
}

extern "C" {
    pub static NSAccessibilityIdentifierAttribute: &'static NSAccessibilityAttributeName;
}

// NS_TYPED_ENUM
pub type NSAccessibilityRulerMarkerTypeValue = NSString;

extern "C" {
    pub static NSAccessibilityLeftTabStopMarkerTypeValue:
        &'static NSAccessibilityRulerMarkerTypeValue;
}

extern "C" {
    pub static NSAccessibilityRightTabStopMarkerTypeValue:
        &'static NSAccessibilityRulerMarkerTypeValue;
}

extern "C" {
    pub static NSAccessibilityCenterTabStopMarkerTypeValue:
        &'static NSAccessibilityRulerMarkerTypeValue;
}

extern "C" {
    pub static NSAccessibilityDecimalTabStopMarkerTypeValue:
        &'static NSAccessibilityRulerMarkerTypeValue;
}

extern "C" {
    pub static NSAccessibilityHeadIndentMarkerTypeValue:
        &'static NSAccessibilityRulerMarkerTypeValue;
}

extern "C" {
    pub static NSAccessibilityTailIndentMarkerTypeValue:
        &'static NSAccessibilityRulerMarkerTypeValue;
}

extern "C" {
    pub static NSAccessibilityFirstLineIndentMarkerTypeValue:
        &'static NSAccessibilityRulerMarkerTypeValue;
}

extern "C" {
    pub static NSAccessibilityUnknownMarkerTypeValue: &'static NSAccessibilityRulerMarkerTypeValue;
}

// NS_ENUM
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct NSAccessibilityRulerMarkerType(pub NSInteger);
impl NSAccessibilityRulerMarkerType {
    #[doc(alias = "NSAccessibilityRulerMarkerTypeUnknown")]
    pub const Unknown: Self = Self(0);
    #[doc(alias = "NSAccessibilityRulerMarkerTypeTabStopLeft")]
    pub const TabStopLeft: Self = Self(1);
    #[doc(alias = "NSAccessibilityRulerMarkerTypeTabStopRight")]
    pub const TabStopRight: Self = Self(2);
    #[doc(alias = "NSAccessibilityRulerMarkerTypeTabStopCenter")]
    pub const TabStopCenter: Self = Self(3);
    #[doc(alias = "NSAccessibilityRulerMarkerTypeTabStopDecimal")]
    pub const TabStopDecimal: Self = Self(4);
    #[doc(alias = "NSAccessibilityRulerMarkerTypeIndentHead")]
    pub const IndentHead: Self = Self(5);
    #[doc(alias = "NSAccessibilityRulerMarkerTypeIndentTail")]
    pub const IndentTail: Self = Self(6);
    #[doc(alias = "NSAccessibilityRulerMarkerTypeIndentFirstLine")]
    pub const IndentFirstLine: Self = Self(7);
}

unsafe impl Encode for NSAccessibilityRulerMarkerType {
    const ENCODING: Encoding = NSInteger::ENCODING;
}

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

// NS_TYPED_ENUM
pub type NSAccessibilityRulerUnitValue = NSString;

extern "C" {
    pub static NSAccessibilityInchesUnitValue: &'static NSAccessibilityRulerUnitValue;
}

extern "C" {
    pub static NSAccessibilityCentimetersUnitValue: &'static NSAccessibilityRulerUnitValue;
}

extern "C" {
    pub static NSAccessibilityPointsUnitValue: &'static NSAccessibilityRulerUnitValue;
}

extern "C" {
    pub static NSAccessibilityPicasUnitValue: &'static NSAccessibilityRulerUnitValue;
}

extern "C" {
    pub static NSAccessibilityUnknownUnitValue: &'static NSAccessibilityRulerUnitValue;
}

// NS_ENUM
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct NSAccessibilityUnits(pub NSInteger);
impl NSAccessibilityUnits {
    #[doc(alias = "NSAccessibilityUnitsUnknown")]
    pub const Unknown: Self = Self(0);
    #[doc(alias = "NSAccessibilityUnitsInches")]
    pub const Inches: Self = Self(1);
    #[doc(alias = "NSAccessibilityUnitsCentimeters")]
    pub const Centimeters: Self = Self(2);
    #[doc(alias = "NSAccessibilityUnitsPoints")]
    pub const Points: Self = Self(3);
    #[doc(alias = "NSAccessibilityUnitsPicas")]
    pub const Picas: Self = Self(4);
}

unsafe impl Encode for NSAccessibilityUnits {
    const ENCODING: Encoding = NSInteger::ENCODING;
}

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

// NS_TYPED_EXTENSIBLE_ENUM
pub type NSAccessibilityActionName = NSString;

extern "C" {
    pub static NSAccessibilityPressAction: &'static NSAccessibilityActionName;
}

extern "C" {
    pub static NSAccessibilityIncrementAction: &'static NSAccessibilityActionName;
}

extern "C" {
    pub static NSAccessibilityDecrementAction: &'static NSAccessibilityActionName;
}

extern "C" {
    pub static NSAccessibilityConfirmAction: &'static NSAccessibilityActionName;
}

extern "C" {
    pub static NSAccessibilityPickAction: &'static NSAccessibilityActionName;
}

extern "C" {
    pub static NSAccessibilityCancelAction: &'static NSAccessibilityActionName;
}

extern "C" {
    pub static NSAccessibilityRaiseAction: &'static NSAccessibilityActionName;
}

extern "C" {
    pub static NSAccessibilityShowMenuAction: &'static NSAccessibilityActionName;
}

extern "C" {
    pub static NSAccessibilityDeleteAction: &'static NSAccessibilityActionName;
}

extern "C" {
    pub static NSAccessibilityShowAlternateUIAction: &'static NSAccessibilityActionName;
}

extern "C" {
    pub static NSAccessibilityShowDefaultUIAction: &'static NSAccessibilityActionName;
}

// NS_TYPED_ENUM
pub type NSAccessibilityNotificationName = NSString;

extern "C" {
    pub static NSAccessibilityMainWindowChangedNotification:
        &'static NSAccessibilityNotificationName;
}

extern "C" {
    pub static NSAccessibilityFocusedWindowChangedNotification:
        &'static NSAccessibilityNotificationName;
}

extern "C" {
    pub static NSAccessibilityFocusedUIElementChangedNotification:
        &'static NSAccessibilityNotificationName;
}

extern "C" {
    pub static NSAccessibilityApplicationActivatedNotification:
        &'static NSAccessibilityNotificationName;
}

extern "C" {
    pub static NSAccessibilityApplicationDeactivatedNotification:
        &'static NSAccessibilityNotificationName;
}

extern "C" {
    pub static NSAccessibilityApplicationHiddenNotification:
        &'static NSAccessibilityNotificationName;
}

extern "C" {
    pub static NSAccessibilityApplicationShownNotification:
        &'static NSAccessibilityNotificationName;
}

extern "C" {
    pub static NSAccessibilityWindowCreatedNotification: &'static NSAccessibilityNotificationName;
}

extern "C" {
    pub static NSAccessibilityWindowMovedNotification: &'static NSAccessibilityNotificationName;
}

extern "C" {
    pub static NSAccessibilityWindowResizedNotification: &'static NSAccessibilityNotificationName;
}

extern "C" {
    pub static NSAccessibilityWindowMiniaturizedNotification:
        &'static NSAccessibilityNotificationName;
}

extern "C" {
    pub static NSAccessibilityWindowDeminiaturizedNotification:
        &'static NSAccessibilityNotificationName;
}

extern "C" {
    pub static NSAccessibilityDrawerCreatedNotification: &'static NSAccessibilityNotificationName;
}

extern "C" {
    pub static NSAccessibilitySheetCreatedNotification: &'static NSAccessibilityNotificationName;
}

extern "C" {
    pub static NSAccessibilityUIElementDestroyedNotification:
        &'static NSAccessibilityNotificationName;
}

extern "C" {
    pub static NSAccessibilityValueChangedNotification: &'static NSAccessibilityNotificationName;
}

extern "C" {
    pub static NSAccessibilityTitleChangedNotification: &'static NSAccessibilityNotificationName;
}

extern "C" {
    pub static NSAccessibilityResizedNotification: &'static NSAccessibilityNotificationName;
}

extern "C" {
    pub static NSAccessibilityMovedNotification: &'static NSAccessibilityNotificationName;
}

extern "C" {
    pub static NSAccessibilityCreatedNotification: &'static NSAccessibilityNotificationName;
}

extern "C" {
    pub static NSAccessibilityLayoutChangedNotification: &'static NSAccessibilityNotificationName;
}

extern "C" {
    pub static NSAccessibilityHelpTagCreatedNotification: &'static NSAccessibilityNotificationName;
}

extern "C" {
    pub static NSAccessibilitySelectedTextChangedNotification:
        &'static NSAccessibilityNotificationName;
}

extern "C" {
    pub static NSAccessibilityRowCountChangedNotification: &'static NSAccessibilityNotificationName;
}

extern "C" {
    pub static NSAccessibilitySelectedChildrenChangedNotification:
        &'static NSAccessibilityNotificationName;
}

extern "C" {
    pub static NSAccessibilitySelectedRowsChangedNotification:
        &'static NSAccessibilityNotificationName;
}

extern "C" {
    pub static NSAccessibilitySelectedColumnsChangedNotification:
        &'static NSAccessibilityNotificationName;
}

extern "C" {
    pub static NSAccessibilityRowExpandedNotification: &'static NSAccessibilityNotificationName;
}

extern "C" {
    pub static NSAccessibilityRowCollapsedNotification: &'static NSAccessibilityNotificationName;
}

extern "C" {
    pub static NSAccessibilitySelectedCellsChangedNotification:
        &'static NSAccessibilityNotificationName;
}

extern "C" {
    pub static NSAccessibilityUnitsChangedNotification: &'static NSAccessibilityNotificationName;
}

extern "C" {
    pub static NSAccessibilitySelectedChildrenMovedNotification:
        &'static NSAccessibilityNotificationName;
}

extern "C" {
    pub static NSAccessibilityAnnouncementRequestedNotification:
        &'static NSAccessibilityNotificationName;
}

// NS_TYPED_ENUM
pub type NSAccessibilityRole = NSString;

extern "C" {
    pub static NSAccessibilityUnknownRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityButtonRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityRadioButtonRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityCheckBoxRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilitySliderRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityTabGroupRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityTextFieldRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityStaticTextRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityTextAreaRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityScrollAreaRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityPopUpButtonRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityMenuButtonRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityTableRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityApplicationRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityGroupRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityRadioGroupRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityListRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityScrollBarRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityValueIndicatorRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityImageRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityMenuBarRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityMenuBarItemRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityMenuRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityMenuItemRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityColumnRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityRowRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityToolbarRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityBusyIndicatorRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityProgressIndicatorRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityWindowRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityDrawerRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilitySystemWideRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityOutlineRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityIncrementorRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityBrowserRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityComboBoxRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilitySplitGroupRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilitySplitterRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityColorWellRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityGrowAreaRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilitySheetRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityHelpTagRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityMatteRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityRulerRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityRulerMarkerRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityLinkRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityDisclosureTriangleRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityGridRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityRelevanceIndicatorRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityLevelIndicatorRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityCellRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityPopoverRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityPageRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityLayoutAreaRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityLayoutItemRole: &'static NSAccessibilityRole;
}

extern "C" {
    pub static NSAccessibilityHandleRole: &'static NSAccessibilityRole;
}

// NS_TYPED_ENUM
pub type NSAccessibilitySubrole = NSString;

extern "C" {
    pub static NSAccessibilityUnknownSubrole: &'static NSAccessibilitySubrole;
}

extern "C" {
    pub static NSAccessibilityCloseButtonSubrole: &'static NSAccessibilitySubrole;
}

extern "C" {
    pub static NSAccessibilityZoomButtonSubrole: &'static NSAccessibilitySubrole;
}

extern "C" {
    pub static NSAccessibilityMinimizeButtonSubrole: &'static NSAccessibilitySubrole;
}

extern "C" {
    pub static NSAccessibilityToolbarButtonSubrole: &'static NSAccessibilitySubrole;
}

extern "C" {
    pub static NSAccessibilityTableRowSubrole: &'static NSAccessibilitySubrole;
}

extern "C" {
    pub static NSAccessibilityOutlineRowSubrole: &'static NSAccessibilitySubrole;
}

extern "C" {
    pub static NSAccessibilitySecureTextFieldSubrole: &'static NSAccessibilitySubrole;
}

extern "C" {
    pub static NSAccessibilityStandardWindowSubrole: &'static NSAccessibilitySubrole;
}

extern "C" {
    pub static NSAccessibilityDialogSubrole: &'static NSAccessibilitySubrole;
}

extern "C" {
    pub static NSAccessibilitySystemDialogSubrole: &'static NSAccessibilitySubrole;
}

extern "C" {
    pub static NSAccessibilityFloatingWindowSubrole: &'static NSAccessibilitySubrole;
}

extern "C" {
    pub static NSAccessibilitySystemFloatingWindowSubrole: &'static NSAccessibilitySubrole;
}

extern "C" {
    pub static NSAccessibilityIncrementArrowSubrole: &'static NSAccessibilitySubrole;
}

extern "C" {
    pub static NSAccessibilityDecrementArrowSubrole: &'static NSAccessibilitySubrole;
}

extern "C" {
    pub static NSAccessibilityIncrementPageSubrole: &'static NSAccessibilitySubrole;
}

extern "C" {
    pub static NSAccessibilityDecrementPageSubrole: &'static NSAccessibilitySubrole;
}

extern "C" {
    pub static NSAccessibilitySearchFieldSubrole: &'static NSAccessibilitySubrole;
}

extern "C" {
    pub static NSAccessibilityTextAttachmentSubrole: &'static NSAccessibilitySubrole;
}

extern "C" {
    pub static NSAccessibilityTextLinkSubrole: &'static NSAccessibilitySubrole;
}

extern "C" {
    pub static NSAccessibilityTimelineSubrole: &'static NSAccessibilitySubrole;
}

extern "C" {
    pub static NSAccessibilitySortButtonSubrole: &'static NSAccessibilitySubrole;
}

extern "C" {
    pub static NSAccessibilityRatingIndicatorSubrole: &'static NSAccessibilitySubrole;
}

extern "C" {
    pub static NSAccessibilityContentListSubrole: &'static NSAccessibilitySubrole;
}

extern "C" {
    pub static NSAccessibilityDefinitionListSubrole: &'static NSAccessibilitySubrole;
}

extern "C" {
    pub static NSAccessibilityFullScreenButtonSubrole: &'static NSAccessibilitySubrole;
}

extern "C" {
    pub static NSAccessibilityToggleSubrole: &'static NSAccessibilitySubrole;
}

extern "C" {
    pub static NSAccessibilitySwitchSubrole: &'static NSAccessibilitySubrole;
}

extern "C" {
    pub static NSAccessibilityDescriptionListSubrole: &'static NSAccessibilitySubrole;
}

extern "C" {
    pub static NSAccessibilityTabButtonSubrole: &'static NSAccessibilitySubrole;
}

extern "C" {
    pub static NSAccessibilityCollectionListSubrole: &'static NSAccessibilitySubrole;
}

extern "C" {
    pub static NSAccessibilitySectionListSubrole: &'static NSAccessibilitySubrole;
}

// NS_TYPED_ENUM
pub type NSAccessibilityNotificationUserInfoKey = NSString;

extern "C" {
    pub static NSAccessibilityUIElementsKey: &'static NSAccessibilityNotificationUserInfoKey;
}

extern "C" {
    pub static NSAccessibilityPriorityKey: &'static NSAccessibilityNotificationUserInfoKey;
}

extern "C" {
    pub static NSAccessibilityAnnouncementKey: &'static NSAccessibilityNotificationUserInfoKey;
}

extern "C" {
    pub fn NSAccessibilityPostNotificationWithUserInfo(
        element: &AnyObject,
        notification: &NSAccessibilityNotificationName,
        user_info: Option<&NSDictionary<NSAccessibilityNotificationUserInfoKey, AnyObject>>,
    );
}

// NS_ENUM
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct NSAccessibilityPriorityLevel(pub NSInteger);
impl NSAccessibilityPriorityLevel {
    pub const NSAccessibilityPriorityLow: Self = Self(10);
    pub const NSAccessibilityPriorityMedium: Self = Self(50);
    pub const NSAccessibilityPriorityHigh: Self = Self(90);
}

unsafe impl Encode for NSAccessibilityPriorityLevel {
    const ENCODING: Encoding = NSInteger::ENCODING;
}

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

pub type NSAccessibilityLoadingToken = TodoProtocols;

extern "C" {
    pub static NSAccessibilitySortButtonRole: &'static NSAccessibilityRole;
}
