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

pub type CLBeaconMajorValue = u16;

pub type CLBeaconMinorValue = u16;

extern_class!(
    #[derive(Debug, PartialEq, Eq, Hash)]
    #[cfg(feature = "CoreLocation_CLBeaconIdentityConstraint")]
    pub struct CLBeaconIdentityConstraint;

    #[cfg(feature = "CoreLocation_CLBeaconIdentityConstraint")]
    unsafe impl ClassType for CLBeaconIdentityConstraint {
        type Super = NSObject;
        type Mutability = InteriorMutable;
    }
);

#[cfg(feature = "CoreLocation_CLBeaconIdentityConstraint")]
unsafe impl NSCoding for CLBeaconIdentityConstraint {}

#[cfg(feature = "CoreLocation_CLBeaconIdentityConstraint")]
unsafe impl NSCopying for CLBeaconIdentityConstraint {}

#[cfg(feature = "CoreLocation_CLBeaconIdentityConstraint")]
unsafe impl NSObjectProtocol for CLBeaconIdentityConstraint {}

#[cfg(feature = "CoreLocation_CLBeaconIdentityConstraint")]
unsafe impl NSSecureCoding for CLBeaconIdentityConstraint {}

extern_methods!(
    #[cfg(feature = "CoreLocation_CLBeaconIdentityConstraint")]
    unsafe impl CLBeaconIdentityConstraint {
        #[cfg(feature = "Foundation_NSUUID")]
        #[method_id(@__retain_semantics Other UUID)]
        pub unsafe fn UUID(&self) -> Id<NSUUID>;

        #[cfg(feature = "Foundation_NSNumber")]
        #[method_id(@__retain_semantics Other major)]
        pub unsafe fn major(&self) -> Option<Id<NSNumber>>;

        #[cfg(feature = "Foundation_NSNumber")]
        #[method_id(@__retain_semantics Other minor)]
        pub unsafe fn minor(&self) -> Option<Id<NSNumber>>;

        #[cfg(feature = "Foundation_NSUUID")]
        #[method_id(@__retain_semantics Init initWithUUID:)]
        pub unsafe fn initWithUUID(this: Option<Allocated<Self>>, uuid: &NSUUID) -> Id<Self>;

        #[cfg(feature = "Foundation_NSUUID")]
        #[method_id(@__retain_semantics Init initWithUUID:major:)]
        pub unsafe fn initWithUUID_major(
            this: Option<Allocated<Self>>,
            uuid: &NSUUID,
            major: CLBeaconMajorValue,
        ) -> Id<Self>;

        #[cfg(feature = "Foundation_NSUUID")]
        #[method_id(@__retain_semantics Init initWithUUID:major:minor:)]
        pub unsafe fn initWithUUID_major_minor(
            this: Option<Allocated<Self>>,
            uuid: &NSUUID,
            major: CLBeaconMajorValue,
            minor: CLBeaconMinorValue,
        ) -> Id<Self>;
    }
);

extern_methods!(
    /// Methods declared on superclass `NSObject`
    #[cfg(feature = "CoreLocation_CLBeaconIdentityConstraint")]
    unsafe impl CLBeaconIdentityConstraint {
        #[method_id(@__retain_semantics Init init)]
        pub unsafe fn init(this: Option<Allocated<Self>>) -> Id<Self>;

        #[method_id(@__retain_semantics New new)]
        pub unsafe fn new() -> Id<Self>;
    }
);
