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

use crate::*;

extern_class!(
    #[derive(Debug, PartialEq, Eq, Hash)]
    pub struct CNSocialProfile;

    unsafe impl ClassType for CNSocialProfile {
        type Super = NSObject;
        type Mutability = InteriorMutable;
    }
);

unsafe impl NSCoding for CNSocialProfile {}

unsafe impl NSCopying for CNSocialProfile {}

unsafe impl NSObjectProtocol for CNSocialProfile {}

unsafe impl NSSecureCoding for CNSocialProfile {}

extern_methods!(
    unsafe impl CNSocialProfile {
        #[method_id(@__retain_semantics Other urlString)]
        pub unsafe fn urlString(&self) -> Retained<NSString>;

        #[method_id(@__retain_semantics Other username)]
        pub unsafe fn username(&self) -> Retained<NSString>;

        #[method_id(@__retain_semantics Other userIdentifier)]
        pub unsafe fn userIdentifier(&self) -> Retained<NSString>;

        #[method_id(@__retain_semantics Other service)]
        pub unsafe fn service(&self) -> Retained<NSString>;

        #[method_id(@__retain_semantics Init initWithUrlString:username:userIdentifier:service:)]
        pub unsafe fn initWithUrlString_username_userIdentifier_service(
            this: Allocated<Self>,
            url_string: Option<&NSString>,
            username: Option<&NSString>,
            user_identifier: Option<&NSString>,
            service: Option<&NSString>,
        ) -> Retained<Self>;

        #[method_id(@__retain_semantics Other localizedStringForKey:)]
        pub unsafe fn localizedStringForKey(key: &NSString) -> Retained<NSString>;

        #[method_id(@__retain_semantics Other localizedStringForService:)]
        pub unsafe fn localizedStringForService(service: &NSString) -> Retained<NSString>;
    }
);

extern_methods!(
    /// Methods declared on superclass `NSObject`
    unsafe impl CNSocialProfile {
        #[method_id(@__retain_semantics Init init)]
        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;

        #[method_id(@__retain_semantics New new)]
        pub unsafe fn new() -> Retained<Self>;
    }
);

extern "C" {
    pub static CNSocialProfileURLStringKey: &'static NSString;
}

extern "C" {
    pub static CNSocialProfileUsernameKey: &'static NSString;
}

extern "C" {
    pub static CNSocialProfileUserIdentifierKey: &'static NSString;
}

extern "C" {
    pub static CNSocialProfileServiceKey: &'static NSString;
}

extern "C" {
    pub static CNSocialProfileServiceFacebook: &'static NSString;
}

extern "C" {
    pub static CNSocialProfileServiceFlickr: &'static NSString;
}

extern "C" {
    pub static CNSocialProfileServiceLinkedIn: &'static NSString;
}

extern "C" {
    pub static CNSocialProfileServiceMySpace: &'static NSString;
}

extern "C" {
    pub static CNSocialProfileServiceSinaWeibo: &'static NSString;
}

extern "C" {
    pub static CNSocialProfileServiceTencentWeibo: &'static NSString;
}

extern "C" {
    pub static CNSocialProfileServiceTwitter: &'static NSString;
}

extern "C" {
    pub static CNSocialProfileServiceYelp: &'static NSString;
}

extern "C" {
    pub static CNSocialProfileServiceGameCenter: &'static NSString;
}
