use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
extern_protocol!(
#[cfg(feature = "GCPhysicalInputElement")]
pub unsafe trait GCButtonElement: GCPhysicalInputElement {
#[cfg(all(feature = "GCLinearInput", feature = "GCPressedStateInput"))]
#[method_id(@__retain_semantics Other pressedInput)]
unsafe fn pressedInput(&self) -> Id<TodoProtocols>;
#[cfg(feature = "GCTouchedStateInput")]
#[method_id(@__retain_semantics Other touchedInput)]
unsafe fn touchedInput(&self) -> Option<Id<ProtocolObject<dyn GCTouchedStateInput>>>;
}
#[cfg(feature = "GCPhysicalInputElement")]
unsafe impl ProtocolType for dyn GCButtonElement {}
);