export interface ComponentData { scheme: { card_public_key: string; }; } export interface PaymentDetails { amount: { value: number; //In Multiples of hundred currency: string; }; reference: string; shopperReference: string; shopperEmail: string; channel: string; countryCode: string; shopperLocale: string; returnUrl: string; merchantAccount: string; additionalData: { allow3DS2: boolean; executeThreeD: boolean; }; } export interface AdyenPaymentMethodDetail { key: string; type: string; optional?: boolean; } export interface CreditCard { details: AdyenPaymentMethodDetail[]; name: string; type: "scheme" | "bcmc"; logo: string; } export interface CreditCardData { paymentMethods: CreditCard[]; storedPaymentMethods?: SavedPaymentMethod[]; } export interface SavedPaymentMethod { type: "scheme" | "bcmc"; id: string; name: string; brand: string; lastFour: string; expiryMonth: string; expiryYear: string; holderName: string; supportedShopperInteractions: string[]; } export type CreditCardPaymentDetails = | NewCreditCardPaymentDetails | SavedCreditPaymentCardDetails; export interface NewCreditCardPaymentDetails { storePaymentMethod: boolean; encryptedCardNumber: string; encryptedExpiryMonth: string; encryptedExpiryYear: string; encryptedSecurityCode: string; storedPaymentMethodId: undefined; type: string; } export interface SavedCreditPaymentCardDetails { storePaymentMethod: boolean; encryptedSecurityCode: string; storedPaymentMethodId: string; type: string; } export default class AdyenPayment { public static SCHEME; public static BCMC; public static pay: ( scheme: AdyenPayment.SCHEME | AdyenPayment.BCMC, componentDate: ComponentData, paymentDetails: PaymentDetails, creditCardsData: CreditCardData, canSaveCreditCards: boolean ) => Promise; }