use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
extern_protocol!(
pub unsafe trait ASAuthorizationPublicKeyCredentialAssertionRequest:
NSObjectProtocol + NSSecureCoding + NSCopying
{
#[unsafe(method(challenge))]
#[unsafe(method_family = none)]
unsafe fn challenge(&self) -> Retained<NSData>;
#[unsafe(method(setChallenge:))]
#[unsafe(method_family = none)]
unsafe fn setChallenge(&self, challenge: &NSData);
#[unsafe(method(relyingPartyIdentifier))]
#[unsafe(method_family = none)]
unsafe fn relyingPartyIdentifier(&self) -> Retained<NSString>;
#[unsafe(method(setRelyingPartyIdentifier:))]
#[unsafe(method_family = none)]
unsafe fn setRelyingPartyIdentifier(&self, relying_party_identifier: &NSString);
#[cfg(feature = "ASAuthorizationPublicKeyCredentialDescriptor")]
#[unsafe(method(allowedCredentials))]
#[unsafe(method_family = none)]
unsafe fn allowedCredentials(
&self,
) -> Retained<NSArray<ProtocolObject<dyn ASAuthorizationPublicKeyCredentialDescriptor>>>;
#[cfg(feature = "ASAuthorizationPublicKeyCredentialDescriptor")]
#[unsafe(method(setAllowedCredentials:))]
#[unsafe(method_family = none)]
unsafe fn setAllowedCredentials(
&self,
allowed_credentials: &NSArray<
ProtocolObject<dyn ASAuthorizationPublicKeyCredentialDescriptor>,
>,
);
#[cfg(feature = "ASAuthorizationPublicKeyCredentialConstants")]
#[unsafe(method(userVerificationPreference))]
#[unsafe(method_family = none)]
unsafe fn userVerificationPreference(
&self,
) -> Retained<ASAuthorizationPublicKeyCredentialUserVerificationPreference>;
#[cfg(feature = "ASAuthorizationPublicKeyCredentialConstants")]
#[unsafe(method(setUserVerificationPreference:))]
#[unsafe(method_family = none)]
unsafe fn setUserVerificationPreference(
&self,
user_verification_preference: &ASAuthorizationPublicKeyCredentialUserVerificationPreference,
);
}
);