use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
extern_class!(
#[unsafe(super(NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct UISceneSessionActivationRequest;
);
extern_conformance!(
unsafe impl NSCopying for UISceneSessionActivationRequest {}
);
unsafe impl CopyingHelper for UISceneSessionActivationRequest {
type Result = Self;
}
extern_conformance!(
unsafe impl NSObjectProtocol for UISceneSessionActivationRequest {}
);
impl UISceneSessionActivationRequest {
extern_methods!(
#[cfg(feature = "UISceneDefinitions")]
#[unsafe(method(role))]
#[unsafe(method_family = none)]
pub fn role(&self) -> Retained<UISceneSessionRole>;
#[cfg(feature = "UISceneSession")]
#[unsafe(method(session))]
#[unsafe(method_family = none)]
pub fn session(&self, mtm: MainThreadMarker) -> Option<Retained<UISceneSession>>;
#[unsafe(method(userActivity))]
#[unsafe(method_family = none)]
pub fn userActivity(&self) -> Option<Retained<NSUserActivity>>;
#[unsafe(method(setUserActivity:))]
#[unsafe(method_family = none)]
pub fn setUserActivity(&self, user_activity: Option<&NSUserActivity>);
#[cfg(feature = "UISceneOptions")]
#[unsafe(method(options))]
#[unsafe(method_family = none)]
pub fn options(
&self,
mtm: MainThreadMarker,
) -> Option<Retained<UISceneActivationRequestOptions>>;
#[cfg(feature = "UISceneOptions")]
#[unsafe(method(setOptions:))]
#[unsafe(method_family = none)]
pub fn setOptions(&self, options: Option<&UISceneActivationRequestOptions>);
#[unsafe(method(request))]
#[unsafe(method_family = none)]
pub fn request() -> Retained<Self>;
#[cfg(feature = "UISceneDefinitions")]
#[unsafe(method(requestWithRole:))]
#[unsafe(method_family = none)]
pub fn requestWithRole(role: &UISceneSessionRole) -> Retained<Self>;
#[cfg(feature = "UISceneSession")]
#[unsafe(method(requestWithSession:))]
#[unsafe(method_family = none)]
pub fn requestWithSession(session: &UISceneSession) -> Retained<Self>;
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub unsafe fn new() -> Retained<Self>;
);
}