use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
#[cfg(feature = "objc2-app-kit")]
#[cfg(target_os = "macos")]
use objc2_app_kit::*;
use objc2_foundation::*;
use crate::*;
extern_class!(
#[unsafe(super(PHChangeRequest, NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
#[cfg(feature = "PHChangeRequest")]
pub struct PHProjectChangeRequest;
);
#[cfg(feature = "PHChangeRequest")]
extern_conformance!(
unsafe impl NSObjectProtocol for PHProjectChangeRequest {}
);
#[cfg(feature = "PHChangeRequest")]
impl PHProjectChangeRequest {
extern_methods!(
#[cfg(all(feature = "PHCollection", feature = "PHObject", feature = "PHProject"))]
#[unsafe(method(initWithProject:))]
#[unsafe(method_family = init)]
pub unsafe fn initWithProject(this: Allocated<Self>, project: &PHProject)
-> Retained<Self>;
#[unsafe(method(title))]
#[unsafe(method_family = none)]
pub unsafe fn title(&self) -> Retained<NSString>;
#[unsafe(method(setTitle:))]
#[unsafe(method_family = none)]
pub unsafe fn setTitle(&self, title: &NSString);
#[unsafe(method(projectExtensionData))]
#[unsafe(method_family = none)]
pub unsafe fn projectExtensionData(&self) -> Retained<NSData>;
#[unsafe(method(setProjectExtensionData:))]
#[unsafe(method_family = none)]
pub unsafe fn setProjectExtensionData(&self, project_extension_data: &NSData);
#[cfg(all(feature = "PHAsset", feature = "PHObject"))]
#[deprecated]
#[unsafe(method(setKeyAsset:))]
#[unsafe(method_family = none)]
pub unsafe fn setKeyAsset(&self, key_asset: Option<&PHAsset>);
#[cfg(feature = "objc2-app-kit")]
#[cfg(target_os = "macos")]
#[unsafe(method(setProjectPreviewImage:))]
#[unsafe(method_family = none)]
pub unsafe fn setProjectPreviewImage(&self, preview_image: &NSImage);
#[unsafe(method(removeAssets:))]
#[unsafe(method_family = none)]
pub unsafe fn removeAssets(&self, assets: &ProtocolObject<dyn NSFastEnumeration>);
);
}
#[cfg(feature = "PHChangeRequest")]
impl PHProjectChangeRequest {
extern_methods!(
#[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>;
);
}