import { type PropType } from 'vue-demi'; import type { StripeCheckoutElementsOptions, StripeCheckoutElementsSdk, StripeCheckoutElementsSdkOptions, StripeCheckoutLoadActionsSuccess, StripeCheckoutSession } from '@stripe/stripe-js'; import type { ScopedSlot, StatusSlots, VueStripeComponent } from '../utils/element-types.cjs'; declare const checkoutElementsProviderProps: { /** Client secret of a Checkout Session (`ui_mode: 'elements'`), or a Promise resolving to it. */ clientSecret: { type: PropType | undefined>; default: undefined; }; /** Alternative to `clientSecret`: a function returning the client secret (v5 compatible). */ fetchClientSecret: { type: PropType<(() => Promise) | undefined>; default: undefined; }; /** Appearance, fonts, loader, saved payment methods and address sync for the Checkout elements. */ elementsOptions: { type: PropType; default: undefined; }; /** Adaptive Pricing (`{ allowed: boolean }`). */ adaptivePricing: { type: PropType; default: undefined; }; /** Prefill email, phone number and addresses. */ defaultValues: { type: PropType; default: undefined; }; }; /** Slot name -> the slot's props. `actions` and `session` are null until the actions load. */ type CheckoutElementsProviderSlots = StatusSlots & { default?: ScopedSlot<{ checkout: StripeCheckoutElementsSdk; actions: StripeCheckoutLoadActionsSuccess | null; session: StripeCheckoutSession | null; loading: boolean; }>; }; /** Event name -> payload. */ type CheckoutElementsProviderEvents = { ready: [actions: StripeCheckoutLoadActionsSuccess]; change: [session: StripeCheckoutSession]; error: [message: string]; }; /** * Elements with Checkout Sessions (`stripe.initCheckoutElementsSdk()`). * * Children render as soon as the SDK exists so elements can mount early; session * actions arrive once `loadActions()` resolves (`useCheckoutSession()`, `@ready`). */ declare const _default: VueStripeComponent, CheckoutElementsProviderEvents, CheckoutElementsProviderSlots>; export default _default;