export interface PaymentMethodData { supportedMethods: Array; data: any; } export interface PaymentCurrencyAmount { currency: string; value: string; } export interface PaymentDetailsBase { displayItems: Array; shippingOptions: Array; modifiers: Array; } export interface PaymentDetailsInit extends PaymentDetailsBase { id?: string; total: PaymentItem; } export interface PaymentDetailsUpdate extends PaymentDetailsBase { error: string; total: PaymentItem; } export type PaymentDetailsModifier = { supportedMethods: Array; total: PaymentItem; additionalDisplayItems: Array; data: any; }; export type PaymentShippingType = 'shipping' | 'delivery' | 'pickup'; export interface PaymentOptions { requestPayerName: boolean; requestPayerEmail: boolean; requestPayerPhone: boolean; requestShipping: boolean; requestBilling: boolean; shippingType: PaymentShippingType; } export interface PaymentItem { label: string; amount: PaymentCurrencyAmount; pending: boolean; } export interface PaymentAddress { recipient: null | string; organization: null | string; addressLine: null | string; city: string; region: string; country: string; postalCode: string; phone: null | string; languageCode: null | string; sortingCode: null | string; dependentLocality: null | string; } export interface PaymentShippingOption { id: string; label: string; amount: PaymentCurrencyAmount; selected: boolean; } export type PaymentComplete = 'fail' | 'success' | 'unknown'; export interface PaymentDetailsIOS { paymentData: any; billingContact?: any; shippingContact?: any; paymentToken?: string; transactionIdentifier: string; paymentMethod: any; } export interface PaymentDetailsIOSRaw { paymentData: string; billingContact?: string; shippingContact?: string; paymentToken?: string; transactionIdentifier: string; paymentMethod: any; }