//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use objc2::__framework_prelude::*;
use objc2_foundation::*;
#[cfg(feature = "objc2-quartz-core")]
#[cfg(not(target_os = "watchos"))]
use objc2_quartz_core::*;

use crate::*;

// NS_ENUM
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct UITableViewCellStyle(pub NSInteger);
impl UITableViewCellStyle {
    #[doc(alias = "UITableViewCellStyleDefault")]
    pub const Default: Self = Self(0);
    #[doc(alias = "UITableViewCellStyleValue1")]
    pub const Value1: Self = Self(1);
    #[doc(alias = "UITableViewCellStyleValue2")]
    pub const Value2: Self = Self(2);
    #[doc(alias = "UITableViewCellStyleSubtitle")]
    pub const Subtitle: Self = Self(3);
}

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

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

// NS_ENUM
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct UITableViewCellSeparatorStyle(pub NSInteger);
impl UITableViewCellSeparatorStyle {
    #[doc(alias = "UITableViewCellSeparatorStyleNone")]
    pub const None: Self = Self(0);
    #[doc(alias = "UITableViewCellSeparatorStyleSingleLine")]
    pub const SingleLine: Self = Self(1);
    #[deprecated = "Use UITableViewCellSeparatorStyleSingleLine for a single line separator."]
    #[doc(alias = "UITableViewCellSeparatorStyleSingleLineEtched")]
    pub const SingleLineEtched: Self = Self(2);
}

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

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

// NS_ENUM
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct UITableViewCellSelectionStyle(pub NSInteger);
impl UITableViewCellSelectionStyle {
    #[doc(alias = "UITableViewCellSelectionStyleNone")]
    pub const None: Self = Self(0);
    #[doc(alias = "UITableViewCellSelectionStyleBlue")]
    pub const Blue: Self = Self(1);
    #[doc(alias = "UITableViewCellSelectionStyleGray")]
    pub const Gray: Self = Self(2);
    #[doc(alias = "UITableViewCellSelectionStyleDefault")]
    pub const Default: Self = Self(3);
}

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

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

// NS_ENUM
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct UITableViewCellFocusStyle(pub NSInteger);
impl UITableViewCellFocusStyle {
    #[doc(alias = "UITableViewCellFocusStyleDefault")]
    pub const Default: Self = Self(0);
    #[doc(alias = "UITableViewCellFocusStyleCustom")]
    pub const Custom: Self = Self(1);
}

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

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

// NS_ENUM
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct UITableViewCellEditingStyle(pub NSInteger);
impl UITableViewCellEditingStyle {
    #[doc(alias = "UITableViewCellEditingStyleNone")]
    pub const None: Self = Self(0);
    #[doc(alias = "UITableViewCellEditingStyleDelete")]
    pub const Delete: Self = Self(1);
    #[doc(alias = "UITableViewCellEditingStyleInsert")]
    pub const Insert: Self = Self(2);
}

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

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

// NS_ENUM
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct UITableViewCellAccessoryType(pub NSInteger);
impl UITableViewCellAccessoryType {
    pub const UITableViewCellAccessoryNone: Self = Self(0);
    pub const UITableViewCellAccessoryDisclosureIndicator: Self = Self(1);
    pub const UITableViewCellAccessoryDetailDisclosureButton: Self = Self(2);
    pub const UITableViewCellAccessoryCheckmark: Self = Self(3);
    pub const UITableViewCellAccessoryDetailButton: Self = Self(4);
}

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

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

// NS_OPTIONS
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct UITableViewCellStateMask(pub NSUInteger);
bitflags::bitflags! {
    impl UITableViewCellStateMask: NSUInteger {
        const UITableViewCellStateDefaultMask = 0;
        const UITableViewCellStateShowingEditControlMask = 1<<0;
        const UITableViewCellStateShowingDeleteConfirmationMask = 1<<1;
    }
}

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

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

// NS_ENUM
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct UITableViewCellDragState(pub NSInteger);
impl UITableViewCellDragState {
    #[doc(alias = "UITableViewCellDragStateNone")]
    pub const None: Self = Self(0);
    #[doc(alias = "UITableViewCellDragStateLifting")]
    pub const Lifting: Self = Self(1);
    #[doc(alias = "UITableViewCellDragStateDragging")]
    pub const Dragging: Self = Self(2);
}

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

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

#[cfg(all(
    feature = "UICellConfigurationState",
    feature = "UIResponder",
    feature = "UIView",
    feature = "UIViewConfigurationState",
    feature = "block2"
))]
pub type UITableViewCellConfigurationUpdateHandler =
    *mut block2::Block<dyn Fn(NonNull<UITableViewCell>, NonNull<UICellConfigurationState>)>;

extern_class!(
    #[derive(Debug, PartialEq, Eq, Hash)]
    #[cfg(all(feature = "UIResponder", feature = "UIView"))]
    pub struct UITableViewCell;

    #[cfg(all(feature = "UIResponder", feature = "UIView"))]
    unsafe impl ClassType for UITableViewCell {
        #[inherits(UIResponder, NSObject)]
        type Super = UIView;
        type Mutability = MainThreadOnly;
    }
);

#[cfg(all(
    feature = "UIResponder",
    feature = "UIView",
    feature = "objc2-quartz-core"
))]
#[cfg(not(target_os = "watchos"))]
unsafe impl CALayerDelegate for UITableViewCell {}

#[cfg(all(feature = "UIResponder", feature = "UIView"))]
unsafe impl NSCoding for UITableViewCell {}

#[cfg(all(feature = "UIResponder", feature = "UIView"))]
unsafe impl NSObjectProtocol for UITableViewCell {}

#[cfg(all(feature = "UIAppearance", feature = "UIResponder", feature = "UIView"))]
unsafe impl UIAppearance for UITableViewCell {}

#[cfg(all(feature = "UIAppearance", feature = "UIResponder", feature = "UIView"))]
unsafe impl UIAppearanceContainer for UITableViewCell {}

#[cfg(all(feature = "UIResponder", feature = "UIView"))]
unsafe impl UICoordinateSpace for UITableViewCell {}

#[cfg(all(
    feature = "UIDynamicBehavior",
    feature = "UIResponder",
    feature = "UIView"
))]
unsafe impl UIDynamicItem for UITableViewCell {}

#[cfg(all(feature = "UIFocus", feature = "UIResponder", feature = "UIView"))]
unsafe impl UIFocusEnvironment for UITableViewCell {}

#[cfg(all(feature = "UIFocus", feature = "UIResponder", feature = "UIView"))]
unsafe impl UIFocusItem for UITableViewCell {}

#[cfg(all(feature = "UIFocus", feature = "UIResponder", feature = "UIView"))]
unsafe impl UIFocusItemContainer for UITableViewCell {}

#[cfg(all(
    feature = "UIGestureRecognizer",
    feature = "UIResponder",
    feature = "UIView"
))]
unsafe impl UIGestureRecognizerDelegate for UITableViewCell {}

#[cfg(all(feature = "UIResponder", feature = "UIView"))]
unsafe impl UIResponderStandardEditActions for UITableViewCell {}

#[cfg(all(
    feature = "UIResponder",
    feature = "UITraitCollection",
    feature = "UIView"
))]
unsafe impl UITraitEnvironment for UITableViewCell {}

extern_methods!(
    #[cfg(all(feature = "UIResponder", feature = "UIView"))]
    unsafe impl UITableViewCell {
        #[method_id(@__retain_semantics Init initWithStyle:reuseIdentifier:)]
        pub unsafe fn initWithStyle_reuseIdentifier(
            this: Allocated<Self>,
            style: UITableViewCellStyle,
            reuse_identifier: Option<&NSString>,
        ) -> Retained<Self>;

        #[method_id(@__retain_semantics Init initWithCoder:)]
        pub unsafe fn initWithCoder(
            this: Allocated<Self>,
            coder: &NSCoder,
        ) -> Option<Retained<Self>>;

        #[cfg(all(
            feature = "UICellConfigurationState",
            feature = "UIViewConfigurationState"
        ))]
        #[method_id(@__retain_semantics Other configurationState)]
        pub unsafe fn configurationState(&self) -> Retained<UICellConfigurationState>;

        #[method(setNeedsUpdateConfiguration)]
        pub unsafe fn setNeedsUpdateConfiguration(&self);

        #[cfg(all(
            feature = "UICellConfigurationState",
            feature = "UIViewConfigurationState"
        ))]
        #[method(updateConfigurationUsingState:)]
        pub unsafe fn updateConfigurationUsingState(&self, state: &UICellConfigurationState);

        #[cfg(all(
            feature = "UICellConfigurationState",
            feature = "UIViewConfigurationState",
            feature = "block2"
        ))]
        #[method(configurationUpdateHandler)]
        pub unsafe fn configurationUpdateHandler(
            &self,
        ) -> UITableViewCellConfigurationUpdateHandler;

        #[cfg(all(
            feature = "UICellConfigurationState",
            feature = "UIViewConfigurationState",
            feature = "block2"
        ))]
        #[method(setConfigurationUpdateHandler:)]
        pub unsafe fn setConfigurationUpdateHandler(
            &self,
            configuration_update_handler: UITableViewCellConfigurationUpdateHandler,
        );

        #[cfg(feature = "UIListContentConfiguration")]
        #[method_id(@__retain_semantics Other defaultContentConfiguration)]
        pub unsafe fn defaultContentConfiguration(&self) -> Retained<UIListContentConfiguration>;

        #[cfg(feature = "UIContentConfiguration")]
        #[method_id(@__retain_semantics Other contentConfiguration)]
        pub unsafe fn contentConfiguration(
            &self,
        ) -> Option<Retained<ProtocolObject<dyn UIContentConfiguration>>>;

        #[cfg(feature = "UIContentConfiguration")]
        #[method(setContentConfiguration:)]
        pub unsafe fn setContentConfiguration(
            &self,
            content_configuration: Option<&ProtocolObject<dyn UIContentConfiguration>>,
        );

        #[method(automaticallyUpdatesContentConfiguration)]
        pub unsafe fn automaticallyUpdatesContentConfiguration(&self) -> bool;

        #[method(setAutomaticallyUpdatesContentConfiguration:)]
        pub unsafe fn setAutomaticallyUpdatesContentConfiguration(
            &self,
            automatically_updates_content_configuration: bool,
        );

        #[method_id(@__retain_semantics Other contentView)]
        pub unsafe fn contentView(&self) -> Retained<UIView>;

        #[cfg(feature = "UIImageView")]
        #[deprecated = "Use UIListContentConfiguration instead, this property will be deprecated in a future release."]
        #[method_id(@__retain_semantics Other imageView)]
        pub unsafe fn imageView(&self) -> Option<Retained<UIImageView>>;

        #[cfg(feature = "UILabel")]
        #[deprecated = "Use UIListContentConfiguration instead, this property will be deprecated in a future release."]
        #[method_id(@__retain_semantics Other textLabel)]
        pub unsafe fn textLabel(&self) -> Option<Retained<UILabel>>;

        #[cfg(feature = "UILabel")]
        #[deprecated = "Use UIListContentConfiguration instead, this property will be deprecated in a future release."]
        #[method_id(@__retain_semantics Other detailTextLabel)]
        pub unsafe fn detailTextLabel(&self) -> Option<Retained<UILabel>>;

        #[cfg(feature = "UIBackgroundConfiguration")]
        #[method_id(@__retain_semantics Other defaultBackgroundConfiguration)]
        pub unsafe fn defaultBackgroundConfiguration(&self) -> Retained<UIBackgroundConfiguration>;

        #[cfg(feature = "UIBackgroundConfiguration")]
        #[method_id(@__retain_semantics Other backgroundConfiguration)]
        pub unsafe fn backgroundConfiguration(&self)
            -> Option<Retained<UIBackgroundConfiguration>>;

        #[cfg(feature = "UIBackgroundConfiguration")]
        #[method(setBackgroundConfiguration:)]
        pub unsafe fn setBackgroundConfiguration(
            &self,
            background_configuration: Option<&UIBackgroundConfiguration>,
        );

        #[method(automaticallyUpdatesBackgroundConfiguration)]
        pub unsafe fn automaticallyUpdatesBackgroundConfiguration(&self) -> bool;

        #[method(setAutomaticallyUpdatesBackgroundConfiguration:)]
        pub unsafe fn setAutomaticallyUpdatesBackgroundConfiguration(
            &self,
            automatically_updates_background_configuration: bool,
        );

        #[method_id(@__retain_semantics Other backgroundView)]
        pub unsafe fn backgroundView(&self) -> Option<Retained<UIView>>;

        #[method(setBackgroundView:)]
        pub unsafe fn setBackgroundView(&self, background_view: Option<&UIView>);

        #[method_id(@__retain_semantics Other selectedBackgroundView)]
        pub unsafe fn selectedBackgroundView(&self) -> Option<Retained<UIView>>;

        #[method(setSelectedBackgroundView:)]
        pub unsafe fn setSelectedBackgroundView(&self, selected_background_view: Option<&UIView>);

        #[method_id(@__retain_semantics Other multipleSelectionBackgroundView)]
        pub unsafe fn multipleSelectionBackgroundView(&self) -> Option<Retained<UIView>>;

        #[method(setMultipleSelectionBackgroundView:)]
        pub unsafe fn setMultipleSelectionBackgroundView(
            &self,
            multiple_selection_background_view: Option<&UIView>,
        );

        #[method_id(@__retain_semantics Other reuseIdentifier)]
        pub unsafe fn reuseIdentifier(&self) -> Option<Retained<NSString>>;

        #[method(prepareForReuse)]
        pub unsafe fn prepareForReuse(&self);

        #[method(selectionStyle)]
        pub unsafe fn selectionStyle(&self) -> UITableViewCellSelectionStyle;

        #[method(setSelectionStyle:)]
        pub unsafe fn setSelectionStyle(&self, selection_style: UITableViewCellSelectionStyle);

        #[method(isSelected)]
        pub unsafe fn isSelected(&self) -> bool;

        #[method(setSelected:)]
        pub unsafe fn setSelected(&self, selected: bool);

        #[method(isHighlighted)]
        pub unsafe fn isHighlighted(&self) -> bool;

        #[method(setHighlighted:)]
        pub unsafe fn setHighlighted(&self, highlighted: bool);

        #[method(setSelected:animated:)]
        pub unsafe fn setSelected_animated(&self, selected: bool, animated: bool);

        #[method(setHighlighted:animated:)]
        pub unsafe fn setHighlighted_animated(&self, highlighted: bool, animated: bool);

        #[method(editingStyle)]
        pub unsafe fn editingStyle(&self) -> UITableViewCellEditingStyle;

        #[method(showsReorderControl)]
        pub unsafe fn showsReorderControl(&self) -> bool;

        #[method(setShowsReorderControl:)]
        pub unsafe fn setShowsReorderControl(&self, shows_reorder_control: bool);

        #[method(shouldIndentWhileEditing)]
        pub unsafe fn shouldIndentWhileEditing(&self) -> bool;

        #[method(setShouldIndentWhileEditing:)]
        pub unsafe fn setShouldIndentWhileEditing(&self, should_indent_while_editing: bool);

        #[method(accessoryType)]
        pub unsafe fn accessoryType(&self) -> UITableViewCellAccessoryType;

        #[method(setAccessoryType:)]
        pub unsafe fn setAccessoryType(&self, accessory_type: UITableViewCellAccessoryType);

        #[method_id(@__retain_semantics Other accessoryView)]
        pub unsafe fn accessoryView(&self) -> Option<Retained<UIView>>;

        #[method(setAccessoryView:)]
        pub unsafe fn setAccessoryView(&self, accessory_view: Option<&UIView>);

        #[method(editingAccessoryType)]
        pub unsafe fn editingAccessoryType(&self) -> UITableViewCellAccessoryType;

        #[method(setEditingAccessoryType:)]
        pub unsafe fn setEditingAccessoryType(
            &self,
            editing_accessory_type: UITableViewCellAccessoryType,
        );

        #[method_id(@__retain_semantics Other editingAccessoryView)]
        pub unsafe fn editingAccessoryView(&self) -> Option<Retained<UIView>>;

        #[method(setEditingAccessoryView:)]
        pub unsafe fn setEditingAccessoryView(&self, editing_accessory_view: Option<&UIView>);

        #[method(indentationLevel)]
        pub unsafe fn indentationLevel(&self) -> NSInteger;

        #[method(setIndentationLevel:)]
        pub unsafe fn setIndentationLevel(&self, indentation_level: NSInteger);

        #[method(indentationWidth)]
        pub unsafe fn indentationWidth(&self) -> CGFloat;

        #[method(setIndentationWidth:)]
        pub unsafe fn setIndentationWidth(&self, indentation_width: CGFloat);

        #[cfg(feature = "UIGeometry")]
        #[method(separatorInset)]
        pub unsafe fn separatorInset(&self) -> UIEdgeInsets;

        #[cfg(feature = "UIGeometry")]
        #[method(setSeparatorInset:)]
        pub unsafe fn setSeparatorInset(&self, separator_inset: UIEdgeInsets);

        #[method(isEditing)]
        pub unsafe fn isEditing(&self) -> bool;

        #[method(setEditing:)]
        pub unsafe fn setEditing(&self, editing: bool);

        #[method(setEditing:animated:)]
        pub unsafe fn setEditing_animated(&self, editing: bool, animated: bool);

        #[method(showingDeleteConfirmation)]
        pub unsafe fn showingDeleteConfirmation(&self) -> bool;

        #[method(focusStyle)]
        pub unsafe fn focusStyle(&self) -> UITableViewCellFocusStyle;

        #[method(setFocusStyle:)]
        pub unsafe fn setFocusStyle(&self, focus_style: UITableViewCellFocusStyle);

        #[method(willTransitionToState:)]
        pub unsafe fn willTransitionToState(&self, state: UITableViewCellStateMask);

        #[method(didTransitionToState:)]
        pub unsafe fn didTransitionToState(&self, state: UITableViewCellStateMask);

        #[method(dragStateDidChange:)]
        pub unsafe fn dragStateDidChange(&self, drag_state: UITableViewCellDragState);

        #[method(userInteractionEnabledWhileDragging)]
        pub unsafe fn userInteractionEnabledWhileDragging(&self) -> bool;

        #[method(setUserInteractionEnabledWhileDragging:)]
        pub unsafe fn setUserInteractionEnabledWhileDragging(
            &self,
            user_interaction_enabled_while_dragging: bool,
        );
    }
);

extern_methods!(
    /// Methods declared on superclass `UIView`
    #[cfg(all(feature = "UIResponder", feature = "UIView"))]
    unsafe impl UITableViewCell {
        #[method_id(@__retain_semantics Init initWithFrame:)]
        pub unsafe fn initWithFrame(this: Allocated<Self>, frame: CGRect) -> Retained<Self>;
    }
);

extern_methods!(
    /// Methods declared on superclass `NSObject`
    #[cfg(all(feature = "UIResponder", feature = "UIView"))]
    unsafe impl UITableViewCell {
        #[method_id(@__retain_semantics Init init)]
        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;

        #[method_id(@__retain_semantics New new)]
        pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
    }
);

extern_methods!(
    /// UIDeprecated
    #[cfg(all(feature = "UIResponder", feature = "UIView"))]
    unsafe impl UITableViewCell {
        #[deprecated]
        #[method_id(@__retain_semantics Init initWithFrame:reuseIdentifier:)]
        pub unsafe fn initWithFrame_reuseIdentifier(
            this: Allocated<Self>,
            frame: CGRect,
            reuse_identifier: Option<&NSString>,
        ) -> Retained<Self>;

        #[deprecated]
        #[method_id(@__retain_semantics Other text)]
        pub unsafe fn text(&self) -> Option<Retained<NSString>>;

        #[deprecated]
        #[method(setText:)]
        pub unsafe fn setText(&self, text: Option<&NSString>);

        #[cfg(feature = "UIFont")]
        #[deprecated]
        #[method_id(@__retain_semantics Other font)]
        pub unsafe fn font(&self) -> Option<Retained<UIFont>>;

        #[cfg(feature = "UIFont")]
        #[deprecated]
        #[method(setFont:)]
        pub unsafe fn setFont(&self, font: Option<&UIFont>);

        #[cfg(feature = "NSText")]
        #[deprecated]
        #[method(textAlignment)]
        pub unsafe fn textAlignment(&self) -> NSTextAlignment;

        #[cfg(feature = "NSText")]
        #[deprecated]
        #[method(setTextAlignment:)]
        pub unsafe fn setTextAlignment(&self, text_alignment: NSTextAlignment);

        #[cfg(feature = "NSParagraphStyle")]
        #[deprecated]
        #[method(lineBreakMode)]
        pub unsafe fn lineBreakMode(&self) -> NSLineBreakMode;

        #[cfg(feature = "NSParagraphStyle")]
        #[deprecated]
        #[method(setLineBreakMode:)]
        pub unsafe fn setLineBreakMode(&self, line_break_mode: NSLineBreakMode);

        #[cfg(feature = "UIColor")]
        #[deprecated]
        #[method_id(@__retain_semantics Other textColor)]
        pub unsafe fn textColor(&self) -> Option<Retained<UIColor>>;

        #[cfg(feature = "UIColor")]
        #[deprecated]
        #[method(setTextColor:)]
        pub unsafe fn setTextColor(&self, text_color: Option<&UIColor>);

        #[cfg(feature = "UIColor")]
        #[deprecated]
        #[method_id(@__retain_semantics Other selectedTextColor)]
        pub unsafe fn selectedTextColor(&self) -> Option<Retained<UIColor>>;

        #[cfg(feature = "UIColor")]
        #[deprecated]
        #[method(setSelectedTextColor:)]
        pub unsafe fn setSelectedTextColor(&self, selected_text_color: Option<&UIColor>);

        #[cfg(feature = "UIImage")]
        #[deprecated]
        #[method_id(@__retain_semantics Other image)]
        pub unsafe fn image(&self) -> Option<Retained<UIImage>>;

        #[cfg(feature = "UIImage")]
        #[deprecated]
        #[method(setImage:)]
        pub unsafe fn setImage(&self, image: Option<&UIImage>);

        #[cfg(feature = "UIImage")]
        #[deprecated]
        #[method_id(@__retain_semantics Other selectedImage)]
        pub unsafe fn selectedImage(&self) -> Option<Retained<UIImage>>;

        #[cfg(feature = "UIImage")]
        #[deprecated]
        #[method(setSelectedImage:)]
        pub unsafe fn setSelectedImage(&self, selected_image: Option<&UIImage>);

        #[deprecated]
        #[method(hidesAccessoryWhenEditing)]
        pub unsafe fn hidesAccessoryWhenEditing(&self) -> bool;

        #[deprecated]
        #[method(setHidesAccessoryWhenEditing:)]
        pub unsafe fn setHidesAccessoryWhenEditing(&self, hides_accessory_when_editing: bool);

        #[deprecated]
        #[method_id(@__retain_semantics Other target)]
        pub unsafe fn target(&self) -> Option<Retained<AnyObject>>;

        #[deprecated]
        #[method(setTarget:)]
        pub unsafe fn setTarget(&self, target: Option<&AnyObject>);

        #[deprecated]
        #[method(editAction)]
        pub unsafe fn editAction(&self) -> Option<Sel>;

        #[deprecated]
        #[method(setEditAction:)]
        pub unsafe fn setEditAction(&self, edit_action: Option<Sel>);

        #[deprecated]
        #[method(accessoryAction)]
        pub unsafe fn accessoryAction(&self) -> Option<Sel>;

        #[deprecated]
        #[method(setAccessoryAction:)]
        pub unsafe fn setAccessoryAction(&self, accessory_action: Option<Sel>);
    }
);
