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

use crate::*;

extern_methods!(
    /// UIGestureRecognizerProtected
    #[cfg(feature = "UIGestureRecognizer")]
    unsafe impl UIGestureRecognizer {
        #[method(setState:)]
        pub unsafe fn setState(&self, state: UIGestureRecognizerState);

        #[cfg(all(feature = "UIEvent", feature = "UITouch"))]
        #[method(ignoreTouch:forEvent:)]
        pub unsafe fn ignoreTouch_forEvent(&self, touch: &UITouch, event: &UIEvent);

        #[cfg(all(feature = "UIEvent", feature = "UIPress", feature = "UIPressesEvent"))]
        #[method(ignorePress:forEvent:)]
        pub unsafe fn ignorePress_forEvent(&self, button: &UIPress, event: &UIPressesEvent);

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

        #[method(canPreventGestureRecognizer:)]
        pub unsafe fn canPreventGestureRecognizer(
            &self,
            prevented_gesture_recognizer: &UIGestureRecognizer,
        ) -> bool;

        #[method(canBePreventedByGestureRecognizer:)]
        pub unsafe fn canBePreventedByGestureRecognizer(
            &self,
            preventing_gesture_recognizer: &UIGestureRecognizer,
        ) -> bool;

        #[method(shouldRequireFailureOfGestureRecognizer:)]
        pub unsafe fn shouldRequireFailureOfGestureRecognizer(
            &self,
            other_gesture_recognizer: &UIGestureRecognizer,
        ) -> bool;

        #[method(shouldBeRequiredToFailByGestureRecognizer:)]
        pub unsafe fn shouldBeRequiredToFailByGestureRecognizer(
            &self,
            other_gesture_recognizer: &UIGestureRecognizer,
        ) -> bool;

        #[cfg(feature = "UIEvent")]
        #[method(shouldReceiveEvent:)]
        pub unsafe fn shouldReceiveEvent(&self, event: &UIEvent) -> bool;

        #[cfg(all(feature = "UIEvent", feature = "UITouch"))]
        #[method(touchesBegan:withEvent:)]
        pub unsafe fn touchesBegan_withEvent(&self, touches: &NSSet<UITouch>, event: &UIEvent);

        #[cfg(all(feature = "UIEvent", feature = "UITouch"))]
        #[method(touchesMoved:withEvent:)]
        pub unsafe fn touchesMoved_withEvent(&self, touches: &NSSet<UITouch>, event: &UIEvent);

        #[cfg(all(feature = "UIEvent", feature = "UITouch"))]
        #[method(touchesEnded:withEvent:)]
        pub unsafe fn touchesEnded_withEvent(&self, touches: &NSSet<UITouch>, event: &UIEvent);

        #[cfg(all(feature = "UIEvent", feature = "UITouch"))]
        #[method(touchesCancelled:withEvent:)]
        pub unsafe fn touchesCancelled_withEvent(&self, touches: &NSSet<UITouch>, event: &UIEvent);

        #[cfg(feature = "UITouch")]
        #[method(touchesEstimatedPropertiesUpdated:)]
        pub unsafe fn touchesEstimatedPropertiesUpdated(&self, touches: &NSSet<UITouch>);

        #[cfg(all(feature = "UIEvent", feature = "UIPress", feature = "UIPressesEvent"))]
        #[method(pressesBegan:withEvent:)]
        pub unsafe fn pressesBegan_withEvent(
            &self,
            presses: &NSSet<UIPress>,
            event: &UIPressesEvent,
        );

        #[cfg(all(feature = "UIEvent", feature = "UIPress", feature = "UIPressesEvent"))]
        #[method(pressesChanged:withEvent:)]
        pub unsafe fn pressesChanged_withEvent(
            &self,
            presses: &NSSet<UIPress>,
            event: &UIPressesEvent,
        );

        #[cfg(all(feature = "UIEvent", feature = "UIPress", feature = "UIPressesEvent"))]
        #[method(pressesEnded:withEvent:)]
        pub unsafe fn pressesEnded_withEvent(
            &self,
            presses: &NSSet<UIPress>,
            event: &UIPressesEvent,
        );

        #[cfg(all(feature = "UIEvent", feature = "UIPress", feature = "UIPressesEvent"))]
        #[method(pressesCancelled:withEvent:)]
        pub unsafe fn pressesCancelled_withEvent(
            &self,
            presses: &NSSet<UIPress>,
            event: &UIPressesEvent,
        );
    }
);
