import React, { ReactNode } from 'react'; import { CheckoutData } from './useCheckout'; export interface Address { address1: string; address2?: string; lastName?: string; firstName?: string; city?: string; state?: string; country?: string; postal?: string; phone?: string; email?: string; } type PaymentMethod = { id: string; type: string; title: string; iconUrl: string; default: boolean; metadata?: Record; }; type ExpressOrderLineItem = { label: string; amount: string; }; type ExpressShippingMethod = { label: string; amount: string; identifier: string; detail: string; }; export interface ExpressPaymentContextType { applePayPaymentMethod?: PaymentMethod; googlePayPaymentMethod?: PaymentMethod; reComputeOrderSummary: () => Promise<{ lineItems: ExpressOrderLineItem[]; total: { label: string; amount: string; }; shippingMethods: ExpressShippingMethod[]; } | undefined>; loading?: boolean; availableExpressPaymentMethodIds: string[]; setAvailableExpressPaymentMethodIds: (value: string[]) => void; shippingMethods: ExpressShippingMethod[]; lineItems: ExpressOrderLineItem[]; handleAddExpressId: (id: string) => void; updateCheckoutSessionValues: (input: { data: { shippingAddress: Address; billingAddress?: Address | null; }; }) => Promise; updateCustomerEmail: (input: { data: { email: string; }; }) => Promise; error: string | null; setError: (error: string | null) => void; } interface ExpressPaymentProviderProps { children: ReactNode; customerId?: string; checkout?: CheckoutData; } export declare const ExpressPaymentProvider: React.FC; export declare const useExpressPayment: () => ExpressPaymentContextType; export {};