use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
extern_protocol!(
pub unsafe trait UIAppearanceContainer: NSObjectProtocol + MainThreadOnly {}
);
extern_protocol!(
pub unsafe trait UIAppearance: NSObjectProtocol + MainThreadOnly {
#[unsafe(method(appearance))]
#[unsafe(method_family = none)]
fn appearance(mtm: MainThreadMarker) -> Retained<Self>;
#[unsafe(method(appearanceWhenContainedInInstancesOfClasses:))]
#[unsafe(method_family = none)]
unsafe fn appearanceWhenContainedInInstancesOfClasses(
container_types: &NSArray<AnyClass>,
mtm: MainThreadMarker,
) -> Retained<Self>;
#[cfg(feature = "UITraitCollection")]
#[unsafe(method(appearanceForTraitCollection:))]
#[unsafe(method_family = none)]
fn appearanceForTraitCollection(
r#trait: &UITraitCollection,
mtm: MainThreadMarker,
) -> Retained<Self>;
#[cfg(feature = "UITraitCollection")]
#[unsafe(method(appearanceForTraitCollection:whenContainedInInstancesOfClasses:))]
#[unsafe(method_family = none)]
unsafe fn appearanceForTraitCollection_whenContainedInInstancesOfClasses(
r#trait: &UITraitCollection,
container_types: &NSArray<AnyClass>,
mtm: MainThreadMarker,
) -> Retained<Self>;
}
);