//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use crate::common::*;
use crate::AppKit::*;
use crate::Foundation::*;
use crate::GameController::*;

extern_protocol!(
    pub unsafe trait GCDevice: NSObjectProtocol {
        #[cfg(feature = "Foundation_NSString")]
        #[method_id(@__retain_semantics Other vendorName)]
        unsafe fn vendorName(&self) -> Option<Id<NSString>>;

        #[cfg(feature = "Foundation_NSString")]
        #[method_id(@__retain_semantics Other productCategory)]
        unsafe fn productCategory(&self) -> Id<NSString>;

        #[cfg(feature = "GameController_GCPhysicalInputProfile")]
        #[deprecated = "Use the physicalInputProfile property on GCController instead.  For GCKeyboard, use the keyboardInput property.  For GCMouse, use the mouseInput property."]
        #[method_id(@__retain_semantics Other physicalInputProfile)]
        unsafe fn physicalInputProfile(&self) -> Id<GCPhysicalInputProfile>;
    }

    unsafe impl ProtocolType for dyn GCDevice {}
);
