//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use objc2_foundation::*;

use crate::*;

extern_protocol!(
    /// [Apple's documentation](https://developer.apple.com/documentation/uikit/uipasteconfigurationsupporting?language=objc)
    pub unsafe trait UIPasteConfigurationSupporting:
        NSObjectProtocol + MainThreadOnly
    {
        #[cfg(feature = "UIPasteConfiguration")]
        #[unsafe(method(pasteConfiguration))]
        #[unsafe(method_family = none)]
        fn pasteConfiguration(&self) -> Option<Retained<UIPasteConfiguration>>;

        #[cfg(feature = "UIPasteConfiguration")]
        /// Setter for [`pasteConfiguration`][Self::pasteConfiguration].
        ///
        /// This is [copied][objc2_foundation::NSCopying::copy] when set.
        #[unsafe(method(setPasteConfiguration:))]
        #[unsafe(method_family = none)]
        fn setPasteConfiguration(&self, paste_configuration: Option<&UIPasteConfiguration>);

        #[optional]
        #[unsafe(method(pasteItemProviders:))]
        #[unsafe(method_family = none)]
        fn pasteItemProviders(&self, item_providers: &NSArray<NSItemProvider>);

        #[optional]
        #[unsafe(method(canPasteItemProviders:))]
        #[unsafe(method_family = none)]
        fn canPasteItemProviders(&self, item_providers: &NSArray<NSItemProvider>) -> bool;
    }
);
