interface ApplePaySession { canMakePayments: () => boolean; } declare global { namespace JSX { interface IntrinsicElements { 'apple-pay-button': React.DetailedHTMLProps, HTMLElement>; } } } interface Window { ApplePaySession: ApplePaySession | undefined; clearError: () => void; initShift4: () => void; shift4Config: { blogName: string; threeDSValidationMessage: string; publicKey: string; }; shift4CardSettings: { cardTitle: string; enabled: boolean; savedCardsEnabled: string; threeDS: string; }; shift4ApplePaySettings: { applePayTitle: string; enabled: boolean; }; shift4Initialised: boolean; shift4JsLoaded: boolean; shift4PaymentFormSubmit: (options: { amount: number; card?: string; currency: string; merchantAccountId?: string; }) => Promise; shift4PayWithApplePay: (options: { value: string; currency: string; }) => Promise; shift4UpdatedCheckout: () => void; wc: { wcBlocksRegistry: { registerPaymentMethod: (method: any) => void; registerExpressPaymentMethod: (method: any) => void; }; wcBlocksData: { validationStore: { hasValidationErrors: () => boolean; }; }; }; wp: { data: { useSelect: ( selector: (select: ((store: Store) => Store)) => Return, deps?: any[] ) => Return; } }, paymentMethodDataRef: { current: Record; } }