use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
extern_protocol!(
pub unsafe trait UIAppearanceContainer: NSObjectProtocol + IsMainThreadOnly {}
unsafe impl ProtocolType for dyn UIAppearanceContainer {}
);
extern_protocol!(
pub unsafe trait UIAppearance: NSObjectProtocol + IsMainThreadOnly {
#[method_id(@__retain_semantics Other appearance)]
unsafe fn appearance(mtm: MainThreadMarker) -> Retained<Self>;
#[method_id(@__retain_semantics Other appearanceWhenContainedInInstancesOfClasses:)]
unsafe fn appearanceWhenContainedInInstancesOfClasses(
container_types: &NSArray<TodoClass>,
mtm: MainThreadMarker,
) -> Retained<Self>;
#[cfg(feature = "UITraitCollection")]
#[method_id(@__retain_semantics Other appearanceForTraitCollection:)]
unsafe fn appearanceForTraitCollection(
r#trait: &UITraitCollection,
mtm: MainThreadMarker,
) -> Retained<Self>;
#[cfg(feature = "UITraitCollection")]
#[method_id(@__retain_semantics Other appearanceForTraitCollection:whenContainedInInstancesOfClasses:)]
unsafe fn appearanceForTraitCollection_whenContainedInInstancesOfClasses(
r#trait: &UITraitCollection,
container_types: &NSArray<TodoClass>,
mtm: MainThreadMarker,
) -> Retained<Self>;
}
unsafe impl ProtocolType for dyn UIAppearance {}
);