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 ExpressPaymentMethodsContextType { paymentMethods: PaymentMethod[] | undefined; applePayPaymentMethod?: PaymentMethod; googlePayPaymentMethod?: PaymentMethod; paypalPaymentMethod?: PaymentMethod; klarnaPaymentMethod?: PaymentMethod; availableExpressPaymentMethodIds: string[]; setAvailableExpressPaymentMethodIds: (value: string[]) => void; handleAddExpressId: (id: string) => void; shippingMethods: ExpressShippingMethod[]; lineItems: ExpressOrderLineItem[]; reComputeOrderSummary: () => Promise<{ lineItems: ExpressOrderLineItem[]; total: { label: string; amount: string; }; shippingMethods: ExpressShippingMethod[]; } | undefined>; updateCheckoutSessionValues: (input: { data: { shippingAddress: Address; billingAddress?: Address | null; }; }) => Promise; updateCustomerEmail: (input: { data: { email: string; }; }) => Promise; loading?: boolean; error: string | null; setError: (error: string | null) => void; } interface ExpressPaymentMethodsProviderProps { children: ReactNode; customerId?: string; checkout?: CheckoutData; } export declare const ExpressPaymentMethodsProvider: React.FC; export declare const useExpressPaymentMethods: () => ExpressPaymentMethodsContextType; export {};