import { Environment } from './env'; import { MerchantCapability, SupportedNetwork } from "../applepay/clients/apple-pay-client"; declare enum Channel { CLICK_TO_PAY = "click_to_pay" } declare enum PublicEvent { HPP_READY = "fz.ready", FORM_VALIDATION_ERROR = "fz.form_validation.error", FORM_VALIDATION_SUCCESS = "fz.form_validation.success", VALIDATION_ERROR = "fz.validation.error", SCA_SUCCESS = "fz.sca.success", SCA_ERROR = "fz.sca.error", TOKENIZATION_SUCCESS = "fz.tokenization.success", TOKENIZATION_ERROR = "fz.tokenization.error", PAYMENT_SUCCESS = "fz.payment.success", PAYMENT_ERROR = "fz.payment.error", BIN_LOOKUP = "fz.bin.lookup", CLICK_TO_PAY_TOKENIZATION_SUCCESS = "fz.click_to_pay.tokenization.success", CLICK_TO_PAY_TOKENIZATION_ERROR = "fz.click_to_pay.tokenization.error", CLICK_TO_PAY_RESIZE = "fz.click_to_pay.resize", CLICK_TO_PAY_DCF_LOADED = "fz.click_to_pay.dcf", CLICK_TO_PAY_MRT = "fz.click_to_pay.mrt", CLICK_TO_PAY_INITIAL_MRT_REQUEST = "fz.click_to_pay.initial_mrt_req", CLICK_TO_PAY_INITIAL_MRT_RESPONSE = "fz.click_to_pay.initial_mrt_res", DEVICE_PROFILE_READY_THREE_D_SECURE_EVENT = "fz.3ds_rdy" } declare enum BridgeEvent { TOKENIZE_CARD_REQUEST = "fzi.tc_req", TOKENIZE_CARD_RESPONSE = "fzi.tc_res", CREATE_PAYMENT_REQUEST = "fzi.cp_req", CREATE_PAYMENT_RESPONSE = "fzi.cp_res", TRIGGER_PAYNOW_BUTTON = "fzi.pn_btn", FORM_VALIDATION_ERROR = "fzi.form_validation_error", FORM_VALIDATION_SUCCESS = "fzi.form_validation_success", BIN_LOOKUP = "fzi.bin_lookup", CLICK_TO_PAY_TOKENIZATION = "fzi.c2p.tc_res", READY = "fzi.ready", THREE_D_SECURE_ENABLED = "fzi.three_d_secure_enabled", SETUP_THREE_D_SECURE_REQUEST = "fzi.3ds_stp_req", SETUP_THREE_D_SECURE_SUCCESS_RESPONSE = "fzi.3ds_stp_res", ENROL_THREE_D_SECURE_REQUEST = "fzi.3ds_enrl_req", ENROL_THREE_D_SECURE_RESPONSE = "fzi.3ds_enrl_res", VALIDATE_THREE_D_SECURE_REQUEST = "fzi.3ds_val8_req", VALIDATE_THREE_D_SECURE_RESPONSE = "fzi.3ds_val8_res", THREE_D_SECURE_FAILURE_RESPONSE = "fzi.3ds_fail", THREE_D_SECURE_CHALLENGE_COMPLETE = "fzi.3ds_chlnge_cmplte", LOADING_THREE_D_SECURE = "fzi.loading_three_d_secure" } declare enum PaymentMethodType { CARD = "card", CARD_ON_FILE = "card_on_file" } interface Card { number: string; holder: string; expiryMonth: string; expiryYear: string; cvv: string; } interface CardOnFile { token: string; } interface Customer { firstName?: string; lastName?: string; email?: string; address?: string; city?: string; postcode?: string; state?: string; country?: string; } interface Payment { amount: number; currency: string; reference: string; hide_card_holder?: boolean; } interface PaymentIntent { payment: Payment; verification: string; } interface PaymentMethod { type?: PaymentMethodType; data: Card | CardOnFile; } interface ValidationResult { valid: boolean; errors: string[]; } export type EventCallback = (event: CustomEvent) => void; type Handlers = Partial>; export type PaymentConfig = { username: string; accessToken: string; environment: Environment; paymentIntent: PaymentIntent; options: OptionalUrlValues; }; export type ApplePayButtonType = 'buy' | 'donate' | 'plain' | 'set-up' | 'book' | 'check-out' | 'subscribe' | 'add-money' | 'contribute' | 'order' | 'reload' | 'rent' | 'support' | 'tip' | 'top-up' | 'continue'; export type ApplePayButtonStyle = 'black' | 'white' | 'white-outline'; export type ApplePayButtonLocale = 'ar-AB' | 'ca-ES' | 'cs-CZ' | 'da-DK' | 'de-DE' | 'el-GR' | 'en-AU' | 'en-GB' | 'en-US' | 'es-ES' | 'es-MX' | 'fi-FI' | 'fr-CA' | 'fr-FR' | 'he-IL' | 'hi-IN' | 'hr-HR' | 'hu-HU' | 'id-ID' | 'it-IT' | 'ja-JP' | 'ko-KR' | 'ms-MY' | 'nb-NO' | 'nl-NL' | 'pl-PL' | 'pt-BR' | 'pt-PT' | 'ro-RO' | 'ru-RU' | 'sk-SK' | 'sv-SE' | 'th-TH' | 'tr-TR' | 'uk-UA' | 'vi-VN' | 'zh-CN' | 'zh-HK' | 'zh-TW'; export type OptionalUrlValues = { hide_card_holder?: boolean; hide_button?: boolean; return_path?: string; allowed_card_networks?: Array; allowed_card_types?: Array; domain_name?: string; card_types?: Array; surcharge_enabled?: string; sca_enabled?: boolean; css?: string; css_signature?: string; tokenize_only?: boolean; apple_button_style?: ApplePayButtonStyle; apple_button_type?: ApplePayButtonType; apple_button_locale?: ApplePayButtonLocale; react_sdk?: boolean; }; declare global { interface Window { ApplePaySession: any; Cardinal: any; FatZebra: any; HPP: any; ApplePayButton: any; MerchantUsername: string; } } export type TransactionPayload = { transactionId: string; responseCode: string; message: string; amount: number; currency: string; reference: string; cardNumber: string; cardHolder: string; cardExpiry: string; cardType: string; verification: string; }; export type CreatePaymentResponse = { transaction_id: TransactionPayload["transactionId"]; response_code: TransactionPayload["responseCode"]; message: TransactionPayload["message"]; amount: TransactionPayload["amount"]; currency: TransactionPayload["currency"]; reference: TransactionPayload["reference"]; card_number: TransactionPayload["cardNumber"]; card_holder: TransactionPayload["cardHolder"]; card_expiry: TransactionPayload["cardExpiry"]; card_type: TransactionPayload["cardType"]; v: TransactionPayload["verification"]; errors?: Array; }; type TokenizeCardResponse = { bin: string; token: string; errors?: Array; }; type ApplePayPaymentResponse = { message: string; errors?: Array; data?: string; }; export { Channel, BridgeEvent, PublicEvent, PaymentMethodType, }; export type { PaymentMethod, PaymentIntent, Payment, Card, CardOnFile, Customer, Handlers, ValidationResult, TokenizeCardResponse, ApplePayPaymentResponse };