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 INCallRecord;
);
extern_conformance!(
unsafe impl NSCoding for INCallRecord {}
);
extern_conformance!(
unsafe impl NSCopying for INCallRecord {}
);
unsafe impl CopyingHelper for INCallRecord {
type Result = Self;
}
extern_conformance!(
unsafe impl NSObjectProtocol for INCallRecord {}
);
extern_conformance!(
unsafe impl NSSecureCoding for INCallRecord {}
);
impl INCallRecord {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[cfg(all(
feature = "INCallCapability",
feature = "INCallRecordType",
feature = "INPerson"
))]
#[unsafe(method(initWithIdentifier:dateCreated:callRecordType:callCapability:callDuration:unseen:participants:numberOfCalls:isCallerIdBlocked:))]
#[unsafe(method_family = init)]
pub unsafe fn initWithIdentifier_dateCreated_callRecordType_callCapability_callDuration_unseen_participants_numberOfCalls_isCallerIdBlocked(
this: Allocated<Self>,
identifier: &NSString,
date_created: Option<&NSDate>,
call_record_type: INCallRecordType,
call_capability: INCallCapability,
call_duration: Option<&NSNumber>,
unseen: Option<&NSNumber>,
participants: Option<&NSArray<INPerson>>,
number_of_calls: Option<&NSNumber>,
is_caller_id_blocked: Option<&NSNumber>,
) -> Retained<Self>;
#[cfg(all(feature = "INCallCapability", feature = "INCallRecordType"))]
#[unsafe(method(initWithIdentifier:dateCreated:callRecordType:callCapability:callDuration:unseen:))]
#[unsafe(method_family = init)]
pub unsafe fn initWithIdentifier_dateCreated_callRecordType_callCapability_callDuration_unseen(
this: Allocated<Self>,
identifier: &NSString,
date_created: Option<&NSDate>,
call_record_type: INCallRecordType,
call_capability: INCallCapability,
call_duration: Option<&NSNumber>,
unseen: Option<&NSNumber>,
) -> Retained<Self>;
#[cfg(all(feature = "INCallCapability", feature = "INCallRecordType"))]
#[unsafe(method(initWithIdentifier:dateCreated:callRecordType:callCapability:callDuration:unseen:numberOfCalls:))]
#[unsafe(method_family = init)]
pub unsafe fn initWithIdentifier_dateCreated_callRecordType_callCapability_callDuration_unseen_numberOfCalls(
this: Allocated<Self>,
identifier: &NSString,
date_created: Option<&NSDate>,
call_record_type: INCallRecordType,
call_capability: INCallCapability,
call_duration: Option<&NSNumber>,
unseen: Option<&NSNumber>,
number_of_calls: Option<&NSNumber>,
) -> Retained<Self>;
#[unsafe(method(identifier))]
#[unsafe(method_family = none)]
pub unsafe fn identifier(&self) -> Retained<NSString>;
#[unsafe(method(dateCreated))]
#[unsafe(method_family = none)]
pub unsafe fn dateCreated(&self) -> Option<Retained<NSDate>>;
#[cfg(feature = "INCallRecordType")]
#[unsafe(method(callRecordType))]
#[unsafe(method_family = none)]
pub unsafe fn callRecordType(&self) -> INCallRecordType;
#[unsafe(method(callDuration))]
#[unsafe(method_family = none)]
pub unsafe fn callDuration(&self) -> Option<Retained<NSNumber>>;
#[unsafe(method(unseen))]
#[unsafe(method_family = none)]
pub unsafe fn unseen(&self) -> Option<Retained<NSNumber>>;
#[cfg(feature = "INCallCapability")]
#[unsafe(method(callCapability))]
#[unsafe(method_family = none)]
pub unsafe fn callCapability(&self) -> INCallCapability;
#[unsafe(method(numberOfCalls))]
#[unsafe(method_family = none)]
pub unsafe fn numberOfCalls(&self) -> Option<Retained<NSNumber>>;
#[unsafe(method(isCallerIdBlocked))]
#[unsafe(method_family = none)]
pub unsafe fn isCallerIdBlocked(&self) -> Option<Retained<NSNumber>>;
#[cfg(feature = "INPerson")]
#[unsafe(method(participants))]
#[unsafe(method_family = none)]
pub unsafe fn participants(&self) -> Option<Retained<NSArray<INPerson>>>;
);
}
impl INCallRecord {
extern_methods!(
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub unsafe fn new() -> Retained<Self>;
);
}