use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
pub type PKStoredValuePassBalanceType = NSString;
extern "C" {
pub static PKStoredValuePassBalanceTypeCash: &'static PKStoredValuePassBalanceType;
}
extern "C" {
pub static PKStoredValuePassBalanceTypeLoyaltyPoints: &'static PKStoredValuePassBalanceType;
}
extern_class!(
#[unsafe(super(NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct PKStoredValuePassBalance;
);
extern_conformance!(
unsafe impl NSObjectProtocol for PKStoredValuePassBalance {}
);
impl PKStoredValuePassBalance {
extern_methods!(
#[unsafe(method(amount))]
#[unsafe(method_family = none)]
pub unsafe fn amount(&self) -> Retained<NSDecimalNumber>;
#[unsafe(method(currencyCode))]
#[unsafe(method_family = none)]
pub unsafe fn currencyCode(&self) -> Option<Retained<NSString>>;
#[unsafe(method(balanceType))]
#[unsafe(method_family = none)]
pub unsafe fn balanceType(&self) -> Retained<PKStoredValuePassBalanceType>;
#[unsafe(method(expiryDate))]
#[unsafe(method_family = none)]
pub unsafe fn expiryDate(&self) -> Option<Retained<NSDate>>;
#[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>;
#[unsafe(method(isEqualToBalance:))]
#[unsafe(method_family = none)]
pub unsafe fn isEqualToBalance(&self, balance: &PKStoredValuePassBalance) -> bool;
);
}