UNPKG

@stripe/react-stripe-js

Version:

React components for Stripe.js and Stripe Elements

824 lines (823 loc) 41.9 kB
import { FunctionComponent, PropsWithChildren } from "react"; import * as stripeJs from "@stripe/stripe-js"; import { StripeError } from "@stripe/stripe-js"; interface CheckoutElementsProviderProps { /** * A [Stripe object](https://stripe.com/docs/js/initializing) or a `Promise` resolving to a `Stripe` object. * The easiest way to initialize a `Stripe` object is with the the [Stripe.js wrapper module](https://github.com/stripe/stripe-js/blob/master/README.md#readme). * Once this prop has been set, it can not be changed. * * You can also pass in `null` or a `Promise` resolving to `null` if you are performing an initial server-side render or when generating a static site. */ stripe: PromiseLike<stripeJs.Stripe | null> | stripeJs.Stripe | null; options: stripeJs.StripeCheckoutElementsSdkOptions; } declare const CheckoutElementsProvider: FunctionComponent<PropsWithChildren<CheckoutElementsProviderProps>>; type ElementsLoadActionsSuccess = Extract<stripeJs.StripeCheckoutLoadActionsResult, { type: "success"; }>["actions"]; type FormLoadActionsSuccess = Extract<stripeJs.StripeCheckoutFormLoadActionsResult, { type: "success"; }>["actions"]; type StripeCheckoutElementsActions = Omit<stripeJs.StripeCheckoutElementsSdk, "on" | "loadActions"> & Omit<ElementsLoadActionsSuccess, "getSession">; type StripeCheckoutFormActions = Omit<stripeJs.StripeCheckoutFormSdk, "on" | "loadActions"> & Omit<FormLoadActionsSuccess, "getSession">; type StripeCheckoutElementsValue = StripeCheckoutElementsActions & stripeJs.StripeCheckoutSession; type StripeCheckoutFormValue = StripeCheckoutFormActions & stripeJs.StripeCheckoutSession; // Back-compat alias: pre-existing consumers of StripeCheckoutValue see the // Elements shape (unchanged behavior). Form consumers should prefer the // narrower StripeCheckoutFormValue returned by useCheckoutForm(). type StripeCheckoutValue = StripeCheckoutElementsValue; type StripeUseCheckoutElementsResult = { type: "loading"; } | { type: "success"; checkout: StripeCheckoutElementsValue; } | { type: "error"; error: { message: string; }; }; type StripeUseCheckoutFormResult = { type: "loading"; } | { type: "success"; checkout: StripeCheckoutFormValue; } | { type: "error"; error: { message: string; }; }; // Back-compat alias: useCheckout() keeps returning the Elements-shaped result // regardless of which provider wraps the tree. See useCheckout() JSDoc below. type StripeUseCheckoutResult = StripeUseCheckoutElementsResult; /** * @deprecated Since v6.3.0. Will be removed in v7.0.0. Prefer the * provider-specific hooks: * - Inside `<CheckoutElementsProvider>`, use `useCheckoutElements()`. * - Inside `<CheckoutFormProvider>`, use `useCheckoutForm()`. * * The provider-specific hooks return the exact action surface exposed by * their SDK. * * `useCheckout()` will keep working under both providers and returns the * Elements-shaped result for backward compatibility. */ declare const useCheckout: () => StripeUseCheckoutResult; declare const useCheckoutElements: () => StripeUseCheckoutElementsResult; declare const useCheckoutForm: () => StripeUseCheckoutFormResult; type CheckoutFormProviderOptions = stripeJs.StripeCheckoutFormSdkOptions; interface CheckoutFormProviderProps { /** * A [Stripe object](https://stripe.com/docs/js/initializing) or a `Promise` resolving to a `Stripe` object. * The easiest way to initialize a `Stripe` object is with the the [Stripe.js wrapper module](https://github.com/stripe/stripe-js/blob/master/README.md#readme). * Once this prop has been set, it can not be changed. * * You can also pass in `null` or a `Promise` resolving to `null` if you are performing an initial server-side render or when generating a static site. */ stripe: PromiseLike<stripeJs.Stripe | null> | stripeJs.Stripe | null; options: CheckoutFormProviderOptions; } declare const CheckoutFormProvider: FunctionComponent<PropsWithChildren<CheckoutFormProviderProps>>; interface ElementProps { /** * Passes through to the [Element’s container](https://stripe.com/docs/js/element/the_element_container). */ id?: string; /** * Passes through to the [Element’s container](https://stripe.com/docs/js/element/the_element_container). */ className?: string; /** * Triggered when the Element loses focus. */ onBlur?: (event: { elementType: stripeJs.StripeElementType; }) => any; /** * Triggered when the Element receives focus. */ onFocus?: (event: { elementType: stripeJs.StripeElementType; }) => any; } interface AuBankAccountElementProps extends ElementProps { /** * An object containing [Element configuration options](https://stripe.com/docs/js/elements_object/create_element?type=auBankAccount). */ options?: stripeJs.StripeAuBankAccountElementOptions; /** * Triggered when data exposed by this Element is changed (e.g., when there is an error). * For more information, refer to the [Stripe.js reference](https://stripe.com/docs/js/element/events/on_change?type=auBankAccountElement). */ onChange?: (event: stripeJs.StripeAuBankAccountElementChangeEvent) => any; /** * Triggered when the Element is fully rendered and can accept imperative `element.focus()` calls. * Called with a reference to the underlying [Element instance](https://stripe.com/docs/js/element). */ onReady?: (element: stripeJs.StripeAuBankAccountElement) => any; /** * Triggered when the escape key is pressed within the Element. */ onEscape?: () => any; } type AuBankAccountElementComponent = FunctionComponent<AuBankAccountElementProps>; interface CardElementProps extends ElementProps { /** * An object containing [Element configuration options](https://stripe.com/docs/js/elements_object/create_element?type=card). */ options?: stripeJs.StripeCardElementOptions; /** * Triggered when data exposed by this Element is changed (e.g., when there is an error). * For more information, refer to the [Stripe.js reference](https://stripe.com/docs/js/element/events/on_change?type=cardElement). */ onChange?: (event: stripeJs.StripeCardElementChangeEvent) => any; /** * Triggered when the Element is fully rendered and can accept imperative `element.focus()` calls. * Called with a reference to the underlying [Element instance](https://stripe.com/docs/js/element). */ onReady?: (element: stripeJs.StripeCardElement) => any; /** * Triggered when the escape key is pressed within the Element. */ onEscape?: () => any; /** * Triggered when there is a change to the available networks the provided card can run on. * For more information, refer to the [Stripe.js reference](https://stripe.com/docs/js/element/events/on_networkschange?type=cardElement). */ onNetworksChange?: (event: { elementType: "card"; }) => any; /** * Triggered when the Element fails to load. */ onLoadError?: (event: { elementType: "card"; error: StripeError; }) => any; } type CardElementComponent = FunctionComponent<CardElementProps>; interface CardNumberElementProps extends ElementProps { /** * An object containing [Element configuration options](https://stripe.com/docs/js/elements_object/create_element?type=cardNumber). */ options?: stripeJs.StripeCardNumberElementOptions; /** * Triggered when data exposed by this Element is changed (e.g., when there is an error). * For more information, refer to the [Stripe.js reference](https://stripe.com/docs/js/element/events/on_change?type=cardNumberElement). */ onChange?: (event: stripeJs.StripeCardNumberElementChangeEvent) => any; /** * Triggered when the Element is fully rendered and can accept imperative `element.focus()` calls. * Called with a reference to the underlying [Element instance](https://stripe.com/docs/js/element). */ onReady?: (element: stripeJs.StripeCardNumberElement) => any; /** * Triggered when the escape key is pressed within the Element. */ onEscape?: () => any; /** * Triggered when there is a change to the available networks the provided card can run on. * For more information, refer to the [Stripe.js reference](https://stripe.com/docs/js/element/events/on_networkschange?type=cardNumberElement). */ onNetworksChange?: (event: { elementType: "cardNumber"; }) => any; /** * Triggered when the Element fails to load. */ onLoadError?: (event: { elementType: "cardNumber"; error: StripeError; }) => any; } type CardNumberElementComponent = FunctionComponent<CardNumberElementProps>; interface CardExpiryElementProps extends ElementProps { /** * An object containing [Element configuration options](https://stripe.com/docs/js/elements_object/create_element?type=cardExpiry). */ options?: stripeJs.StripeCardExpiryElementOptions; /** * Triggered when data exposed by this Element is changed (e.g., when there is an error). * For more information, refer to the [Stripe.js reference](https://stripe.com/docs/js/element/events/on_change?type=cardExpiryElement). */ onChange?: (event: stripeJs.StripeCardExpiryElementChangeEvent) => any; /** * Triggered when the Element is fully rendered and can accept imperative `element.focus()` calls. * Called with a reference to the underlying [Element instance](https://stripe.com/docs/js/element). */ onReady?: (element: stripeJs.StripeCardExpiryElement) => any; /** * Triggered when the escape key is pressed within the Element. */ onEscape?: () => any; } type CardExpiryElementComponent = FunctionComponent<CardExpiryElementProps>; interface CardCvcElementProps extends ElementProps { /** * An object containing [Element configuration options](https://stripe.com/docs/js/elements_object/create_element?type=cardCvc). */ options?: stripeJs.StripeCardCvcElementOptions; /** * Triggered when data exposed by this Element is changed (e.g., when there is an error). * For more information, refer to the [Stripe.js reference](https://stripe.com/docs/js/element/events/on_change?type=cardCvcElement). */ onChange?: (event: stripeJs.StripeCardCvcElementChangeEvent) => any; /** * Triggered when the Element is fully rendered and can accept imperative `element.focus()` calls. * Called with a reference to the underlying [Element instance](https://stripe.com/docs/js/element). */ onReady?: (element: stripeJs.StripeCardCvcElement) => any; /** * Triggered when the escape key is pressed within the Element. */ onEscape?: () => any; } type CardCvcElementComponent = FunctionComponent<CardCvcElementProps>; interface IbanElementProps extends ElementProps { /** * An object containing [Element configuration options](https://stripe.com/docs/js/elements_object/create_element?type=iban). */ options?: stripeJs.StripeIbanElementOptions; /** * Triggered when data exposed by this Element is changed (e.g., when there is an error). * For more information, refer to the [Stripe.js reference](https://stripe.com/docs/js/element/events/on_change?type=ibanElement). */ onChange?: (event: stripeJs.StripeIbanElementChangeEvent) => any; /** * Triggered when the Element is fully rendered and can accept imperative `element.focus()` calls. * Called with a reference to the underlying [Element instance](https://stripe.com/docs/js/element). */ onReady?: (element: stripeJs.StripeIbanElement) => any; /** * Triggered when the escape key is pressed within the Element. */ onEscape?: () => any; } type IbanElementComponent = FunctionComponent<IbanElementProps>; interface LinkAuthenticationElementProps extends ElementProps { /** * An object containing Element configuration options. */ options?: stripeJs.StripeLinkAuthenticationElementOptions; /** * Triggered when data exposed by this Element is changed (e.g., when there is an error). * For more information, refer to the [Stripe.js reference](https://stripe.com/docs/js/element/events/on_change?type=auBankAccountElement). */ onChange?: (event: stripeJs.StripeLinkAuthenticationElementChangeEvent) => any; /** * Triggered when the Element is fully rendered and can accept imperative `element.focus()` calls. * Called with a reference to the underlying [Element instance](https://stripe.com/docs/js/element). */ onReady?: (element: stripeJs.StripeLinkAuthenticationElement) => any; /** * Triggered when the escape key is pressed within the Element. */ onEscape?: () => any; /** * Triggered when the Element fails to load. */ onLoadError?: (event: { elementType: "linkAuthentication"; error: StripeError; }) => any; /** * Triggered when the [loader](https://stripe.com/docs/js/elements_object/create#stripe_elements-options-loader) UI is mounted to the DOM and ready to be displayed. */ onLoaderStart?: (event: { elementType: "linkAuthentication"; }) => any; } type LinkAuthenticationElementComponent = FunctionComponent<LinkAuthenticationElementProps>; /** * Requires beta access: * Contact [Stripe support](https://support.stripe.com/) for more information. */ interface CheckoutFormProps extends ElementProps { /** * An object containing Checkout form configuration options. */ options?: stripeJs.StripeCheckoutFormOptions; /** * Triggered when data exposed by this Element is changed. */ onChange?: (event: stripeJs.StripeCheckoutFormChangeEvent) => any; /** * Triggered when the Element is fully rendered and can accept imperative `element.focus()` calls. * Called with a reference to the underlying [Element instance](https://stripe.com/docs/js/element). */ onReady?: (element: stripeJs.StripeCheckoutForm) => any; /** * Triggered when the escape key is pressed within the Element. */ onEscape?: () => any; /** * Triggered when the Element fails to load. */ onLoadError?: (event: { elementType: "checkoutForm"; error: StripeError; }) => any; /** * Triggered when the [loader](https://stripe.com/docs/js/elements_object/create#stripe_elements-options-loader) UI is mounted to the DOM and ready to be displayed. */ onLoaderStart?: (event: { elementType: "checkoutForm"; }) => any; /** * Triggered when a buyer authorizes a payment within a supported payment method. */ onConfirm?: (event: stripeJs.StripeCheckoutFormConfirmEvent) => any; /** * Triggered when a payment interface is dismissed (e.g., a buyer closes the payment interface). */ onCancel?: (event: { elementType: "checkoutForm"; }) => any; } type CheckoutFormComponent = FunctionComponent<CheckoutFormProps>; interface PaymentElementProps extends ElementProps { /** * An object containing Element configuration options. */ options?: stripeJs.StripePaymentElementOptions; /** * Triggered when data exposed by this Element is changed. */ onChange?: (event: stripeJs.StripePaymentElementChangeEvent) => any; /** * Triggered when the Element is fully rendered and can accept imperative `element.focus()` calls. * Called with a reference to the underlying [Element instance](https://stripe.com/docs/js/element). */ onReady?: (element: stripeJs.StripePaymentElement) => any; /** * Triggered when the escape key is pressed within the Element. */ onEscape?: () => any; /** * Triggered when the Element fails to load. */ onLoadError?: (event: { elementType: "payment"; error: StripeError; }) => any; /** * Triggered when the [loader](https://stripe.com/docs/js/elements_object/create#stripe_elements-options-loader) UI is mounted to the DOM and ready to be displayed. */ onLoaderStart?: (event: { elementType: "payment"; }) => any; /** * Requires beta access: * Contact [Stripe support](https://support.stripe.com/) for more information. * * Triggered when the user removes a saved payment method from the Payment Element. */ onSavedPaymentMethodRemove?: (event: { elementType: "payment"; success: boolean; error?: string; payment_method: stripeJs.StripePaymentElementChangeEvent["value"]["payment_method"]; }) => any; /** * Requires beta access: * Contact [Stripe support](https://support.stripe.com/) for more information. * * Triggered when the user updates a saved payment method from the Payment Element. */ onSavedPaymentMethodUpdate?: (event: { elementType: "payment"; success: boolean; error?: string; payment_method: stripeJs.StripePaymentElementChangeEvent["value"]["payment_method"]; }) => any; /** * Triggered when the set of available payment methods changes. */ onAvailablePaymentMethodsChange?: (event: stripeJs.StripePaymentElementAvailablePaymentMethodsChangeEvent) => any; } type PaymentElementComponent = FunctionComponent<PaymentElementProps>; interface ExpressCheckoutElementProps extends ElementProps { /** * An object containing Element configuration options. */ options?: stripeJs.StripeExpressCheckoutElementOptions; /** * Triggered when the Element is fully rendered and can accept imperative `element.focus()` calls. * The list of payment methods that could possibly show in the element, or undefined if no payment methods can show. */ onReady?: (event: stripeJs.StripeExpressCheckoutElementReadyEvent) => any; /** * Triggered when the escape key is pressed within the Element. */ onEscape?: () => any; /** * Triggered when the Element fails to load. */ onLoadError?: (event: { elementType: "expressCheckout"; error: StripeError; }) => any; /** * Triggered when a button on the Element is clicked. */ onClick?: (event: stripeJs.StripeExpressCheckoutElementClickEvent) => any; /** * Triggered when a buyer authorizes a payment within a supported payment method. */ onConfirm: (event: stripeJs.StripeExpressCheckoutElementConfirmEvent) => any; /** * Triggered when a payment interface is dismissed (e.g., a buyer closes the payment interface) */ onCancel?: (event: { elementType: "expressCheckout"; }) => any; /** * Triggered when a buyer selects a different shipping address. */ onShippingAddressChange?: (event: stripeJs.StripeExpressCheckoutElementShippingAddressChangeEvent) => any; /** * Triggered when a buyer selects a different shipping rate. */ onShippingRateChange?: (event: stripeJs.StripeExpressCheckoutElementShippingRateChangeEvent) => any; /** * Triggered when the set of available payment methods changes. */ onAvailablePaymentMethodsChange?: (event: stripeJs.StripeExpressCheckoutElementAvailablePaymentMethodsChangeEvent) => any; } type ExpressCheckoutElementComponent = FunctionComponent<ExpressCheckoutElementProps>; interface PaymentRequestButtonElementProps extends ElementProps { /** * An object containing [Element configuration options](https://stripe.com/docs/js/elements_object/create_element?type=paymentRequestButton). */ options?: stripeJs.StripePaymentRequestButtonElementOptions; /** * Triggered when the Element is clicked. */ onClick?: (event: stripeJs.StripePaymentRequestButtonElementClickEvent) => any; /** * Triggered when the Element is fully rendered and can accept imperative `element.focus()` calls. * Called with a reference to the underlying [Element instance](https://stripe.com/docs/js/element). */ onReady?: (element: stripeJs.StripePaymentRequestButtonElement) => any; } type PaymentRequestButtonElementComponent = FunctionComponent<PaymentRequestButtonElementProps>; interface AddressElementProps extends ElementProps { /** * An object containing [Element configuration options](https://stripe.com/docs/js/elements_object/create_address_element#address_element_create-options). */ options: stripeJs.StripeAddressElementOptions; /** * Triggered when data exposed by this Element is changed (e.g., when there is an error). * For more information, refer to the [Stripe.js reference](https://stripe.com/docs/js/element/events/on_change?type=addressElement). */ onChange?: (event: stripeJs.StripeAddressElementChangeEvent) => any; /** * Triggered when the Element is fully rendered and can accept imperative `element.focus()` calls. * Called with a reference to the underlying [Element instance](https://stripe.com/docs/js/element). */ onReady?: (element: stripeJs.StripeAddressElement) => any; /** * Triggered when the escape key is pressed within the Element. */ onEscape?: () => any; /** * Triggered when the Element fails to load. */ onLoadError?: (event: { elementType: "address"; error: StripeError; }) => any; /** * Triggered when the [loader](https://stripe.com/docs/js/elements_object/create#stripe_elements-options-loader) UI is mounted to the DOM and ready to be displayed. */ onLoaderStart?: (event: { elementType: "address"; }) => any; } type AddressElementComponent = FunctionComponent<AddressElementProps>; interface ShippingAddressElementProps extends ElementProps { /** * An object containing [Element configuration options](https://stripe.com/docs/js/deprecated/create_shipping_address_element#shipping_address_element_create-options). */ options?: stripeJs.StripeShippingAddressElementOptions; /** * Triggered when data exposed by this Element is changed (e.g., when there is an error). * For more information, refer to the [Stripe.js reference](https://stripe.com/docs/js/element/events/on_change?type=shippingAddressElement). */ onChange?: (event: stripeJs.StripeShippingAddressElementChangeEvent) => any; /** * Triggered when the Element is fully rendered and can accept imperative `element.focus()` calls. * Called with a reference to the underlying [Element instance](https://stripe.com/docs/js/element). */ onReady?: (element: stripeJs.StripeShippingAddressElement) => any; /** * Triggered when the escape key is pressed within the Element. */ onEscape?: () => any; /** * Triggered when the Element fails to load. */ onLoadError?: (event: { elementType: "shippingAddress"; error: StripeError; }) => any; /** * Triggered when the [loader](https://stripe.com/docs/js/elements_object/create#stripe_elements-options-loader) UI is mounted to the DOM and ready to be displayed. */ onLoaderStart?: (event: { elementType: "shippingAddress"; }) => any; } type ShippingAddressElementComponent = FunctionComponent<ShippingAddressElementProps>; interface PaymentMethodMessagingElementProps { /** * Passes through to the [Element’s container](https://stripe.com/docs/js/element/the_element_container). */ id?: string; /** * Passes through to the [Element’s container](https://stripe.com/docs/js/element/the_element_container). */ className?: string; /** * An object containing [Element configuration options](https://stripe.com/docs/js/elements_object/create_element?type=afterpayClearpayMessage). */ options?: stripeJs.StripePaymentMethodMessagingElementOptions; /** * Triggered when the Element has been fully loaded, after initial method calls have been fired. * Called with a reference to the underlying [Element instance](https://stripe.com/docs/js/element). */ onReady?: (element: stripeJs.StripePaymentMethodMessagingElement) => any; } type PaymentMethodMessagingElementComponent = FunctionComponent<PaymentMethodMessagingElementProps>; declare module "@stripe/stripe-js" { interface StripeElements { /** * Requires beta access: * Contact [Stripe support](https://support.stripe.com/) for more information. * * Returns the underlying [element instance](https://stripe.com/docs/js/elements_object/create_element?type=auBankAccount) for the `AuBankAccountElement` component in the current [Elements](https://stripe.com/docs/stripe-js/react#elements-provider) provider tree. * Returns `null` if no `AuBankAccountElement` is rendered in the current `Elements` provider tree. */ getElement(component: AuBankAccountElementComponent): stripeJs.StripeAuBankAccountElement | null; /** * Returns the underlying [element instance](https://stripe.com/docs/js/elements_object/create_element?type=card) for the `CardElement` component in the current [Elements](https://stripe.com/docs/stripe-js/react#elements-provider) provider tree. * Returns `null` if no `CardElement` is rendered in the current `Elements` provider tree. */ getElement(component: CardElementComponent): stripeJs.StripeCardElement | null; /** * Returns the underlying [element instance](https://stripe.com/docs/js/elements_object/create_element?type=cardNumber) for the `CardNumberElement` component in the current [Elements](https://stripe.com/docs/stripe-js/react#elements-provider) provider tree. * Returns `null` if no `CardNumberElement` is rendered in the current `Elements` provider tree. */ getElement(component: CardNumberElementComponent): stripeJs.StripeCardNumberElement | null; /** * Returns the underlying [element instance](https://stripe.com/docs/js/elements_object/create_element?type=cardCvc) for the `CardCvcElement` component in the current [Elements](https://stripe.com/docs/stripe-js/react#elements-provider) provider tree. * Returns `null` if no `CardCvcElement` is rendered in the current `Elements` provider tree. */ getElement(component: CardCvcElementComponent): stripeJs.StripeCardCvcElement | null; /** * Returns the underlying [element instance](https://stripe.com/docs/js/elements_object/create_element?type=cardExpiry) for the `CardExpiryElement` component in the current [Elements](https://stripe.com/docs/stripe-js/react#elements-provider) provider tree. * Returns `null` if no `CardExpiryElement` is rendered in the current `Elements` provider tree. */ getElement(component: CardExpiryElementComponent): stripeJs.StripeCardExpiryElement | null; /** * Returns the underlying [element instance](https://stripe.com/docs/js/elements_object/create_element?type=iban) for the `IbanElement` component in the current [Elements](https://stripe.com/docs/stripe-js/react#elements-provider) provider tree. * Returns `null` if no `IbanElement` is rendered in the current `Elements` provider tree. */ getElement(component: IbanElementComponent): stripeJs.StripeIbanElement | null; /** * Returns the underlying [element instance](https://stripe.com/docs/js/elements_object/create_link_authentication_element) for the `LinkAuthenticationElement` component in the current [Elements](https://stripe.com/docs/stripe-js/react#elements-provider) provider tree. * Returns `null` if no `LinkAuthenticationElement` is rendered in the current `Elements` provider tree. */ getElement(component: LinkAuthenticationElementComponent): stripeJs.StripeLinkAuthenticationElement | null; /** * Returns the underlying [element instance](https://stripe.com/docs/js/elements_object/create_payment_element) for the `PaymentElement` component in the current [Elements](https://stripe.com/docs/stripe-js/react#elements-provider) provider tree. * Returns `null` if no `PaymentElement` is rendered in the current `Elements` provider tree. */ getElement(component: PaymentElementComponent): stripeJs.StripeElement | null; /** * Requires beta access: * Contact [Stripe support](https://support.stripe.com/) for more information. * * Returns the underlying [element instance] for the `CheckoutForm` component in the current [Elements](https://stripe.com/docs/stripe-js/react#elements-provider) provider tree. * Returns `null` if no `CheckoutForm` is rendered in the current `Elements` provider tree. */ getElement(component: CheckoutFormComponent): stripeJs.StripeCheckoutForm | null; /** * Returns the underlying [element instance](https://stripe.com/docs/js/elements_object/create_express_checkout_element) for the `ExpressCheckoutElement` component in the current [Elements](https://stripe.com/docs/stripe-js/react#elements-provider) provider tree. * Returns `null` if no `ExpressCheckoutElement` is rendered in the current `Elements` provider tree. */ getElement(component: ExpressCheckoutElementComponent): stripeJs.StripeElement | null; /** * Returns the underlying [element instance](https://stripe.com/docs/js/elements_object/create_element?type=paymentRequestButton) for the `PaymentRequestButtonElement` component in the current [Elements](https://stripe.com/docs/stripe-js/react#elements-provider) provider tree. * Returns `null` if no `PaymentRequestButtonElement` is rendered in the current `Elements` provider tree. */ getElement(component: PaymentRequestButtonElementComponent): stripeJs.StripePaymentRequestButtonElement | null; /** * Returns the underlying [element instance](https://stripe.com/docs/js/elements_object/create_address_element) for the `AddressElement` component in the current [Elements](https://stripe.com/docs/stripe-js/react#elements-provider) provider tree. * Returns `null` if no `AddressElement` is rendered in the current `Elements` provider tree. */ getElement(component: AddressElementComponent): stripeJs.StripeAddressElement | null; /** * Returns the underlying [element instance](https://stripe.com/docs/js/deprecated/create_shipping_address_element) for the `ShippingAddressElement` component in the current [Elements](https://stripe.com/docs/stripe-js/react#elements-provider) provider tree. * Returns `null` if no `ShippingAddressElement` is rendered in the current `Elements` provider tree. */ getElement(component: ShippingAddressElementComponent): stripeJs.StripeShippingAddressElement | null; /** * Returns the underlying [element instance](https://stripe.com/docs/js/elements_object/create_element?type=paymentMethodMessaging) for the `PaymentMethodMessagingElement` component in the current [Elements](https://stripe.com/docs/stripe-js/react#elements-provider) provider tree. * Returns `null` if no `PaymentMethodMessagingElement` is rendered in the current `Elements` provider tree. */ getElement(component: PaymentMethodMessagingElementComponent): stripeJs.StripePaymentMethodMessagingElement | null; /** * Returns the underlying element instance for the * `IssuingCardNumberDisplayElement` component in the current `Elements` * provider tree. * Returns `null` if no `IssuingCardNumberDisplayElement` is rendered in the * current `Elements` provider tree. */ getElement(component: IssuingCardNumberDisplayElementComponent): stripeJs.StripeIssuingCardNumberDisplayElement | null; /** * Returns the underlying element instance for the * `IssuingCardCvcDisplayElement` component in the current `Elements` * provider tree. * Returns `null` if no `IssuingCardCvcDisplayElement` is rendered in the * current `Elements` provider tree. */ getElement(component: IssuingCardCvcDisplayElementComponent): stripeJs.StripeIssuingCardCvcDisplayElement | null; /** * Returns the underlying element instance for the * `IssuingCardExpiryDisplayElement` component in the current `Elements` * provider tree. * Returns `null` if no `IssuingCardExpiryDisplayElement` is rendered in the * current `Elements` provider tree. */ getElement(component: IssuingCardExpiryDisplayElementComponent): stripeJs.StripeIssuingCardExpiryDisplayElement | null; /** * Returns the underlying element instance for the * `IssuingCardPinDisplayElement` component in the current `Elements` * provider tree. * Returns `null` if no `IssuingCardPinDisplayElement` is rendered in the * current `Elements` provider tree. */ getElement(component: IssuingCardPinDisplayElementComponent): stripeJs.StripeIssuingCardPinDisplayElement | null; /** * Returns the underlying element instance for the * `IssuingCardCopyButtonElement` component in the current `Elements` * provider tree. * Returns `null` if no `IssuingCardCopyButtonElement` is rendered in the * current `Elements` provider tree. */ getElement(component: IssuingCardCopyButtonElementComponent): stripeJs.StripeIssuingCardCopyButtonElement | null; } } interface IssuingCardNumberDisplayElementProps extends ElementProps { /** * An object containing Element configuration options. */ options: stripeJs.StripeIssuingCardNumberDisplayElementOptions; /** * Triggered when the Element is fully rendered and can accept imperative * `element.focus()` calls. */ onReady?: (element: stripeJs.StripeIssuingCardNumberDisplayElement) => any; } type IssuingCardNumberDisplayElementComponent = FunctionComponent<IssuingCardNumberDisplayElementProps>; interface IssuingCardCvcDisplayElementProps extends ElementProps { /** * An object containing Element configuration options. */ options: stripeJs.StripeIssuingCardCvcDisplayElementOptions; /** * Triggered when the Element is fully rendered and can accept imperative * `element.focus()` calls. */ onReady?: (element: stripeJs.StripeIssuingCardCvcDisplayElement) => any; } type IssuingCardCvcDisplayElementComponent = FunctionComponent<IssuingCardCvcDisplayElementProps>; interface IssuingCardExpiryDisplayElementProps extends ElementProps { /** * An object containing Element configuration options. */ options: stripeJs.StripeIssuingCardExpiryDisplayElementOptions; /** * Triggered when the Element is fully rendered and can accept imperative * `element.focus()` calls. */ onReady?: (element: stripeJs.StripeIssuingCardExpiryDisplayElement) => any; } type IssuingCardExpiryDisplayElementComponent = FunctionComponent<IssuingCardExpiryDisplayElementProps>; interface IssuingCardPinDisplayElementProps extends ElementProps { /** * An object containing Element configuration options. */ options: stripeJs.StripeIssuingCardPinDisplayElementOptions; /** * Triggered when the Element is fully rendered and can accept imperative * `element.focus()` calls. */ onReady?: (element: stripeJs.StripeIssuingCardPinDisplayElement) => any; } type IssuingCardPinDisplayElementComponent = FunctionComponent<IssuingCardPinDisplayElementProps>; interface IssuingCardCopyButtonElementProps extends ElementProps { /** * An object containing Element configuration options. */ options: stripeJs.StripeIssuingCardCopyButtonElementOptions; /** * Triggered when the Element is clicked. */ onClick?: (event: { elementType: "issuingCardCopyButton"; }) => any; /** * Triggered when the Element is fully rendered and can accept imperative * `element.focus()` calls. */ onReady?: (element: stripeJs.StripeIssuingCardCopyButtonElement) => any; } type IssuingCardCopyButtonElementComponent = FunctionComponent<IssuingCardCopyButtonElementProps>; type RootPaymentElementProps = PaymentElementProps; type RootCheckoutFormProps = CheckoutFormProps; type RootExpressCheckoutElementProps = ExpressCheckoutElementProps; type RootAddressElementProps = AddressElementProps; interface CurrencySelectorElementProps extends ElementProps { /** * Triggered when the Element is fully rendered and can accept imperative `element.focus()` calls. * Called with a reference to the underlying [Element instance](https://stripe.com/docs/js/element). */ onReady?: (element: stripeJs.StripeCurrencySelectorElement) => any; /** * Triggered when the escape key is pressed within the Element. */ onEscape?: () => any; /** * Triggered when the Element fails to load. */ onLoadError?: (event: { elementType: "currencySelector"; error: StripeError; }) => any; /** * Triggered when the [loader](https://stripe.com/docs/js/elements_object/create#stripe_elements-options-loader) UI is mounted to the DOM and ready to be displayed. */ onLoaderStart?: (event: { elementType: "currencySelector"; }) => any; } type CurrencySelectorElementComponent = FunctionComponent<CurrencySelectorElementProps>; type BillingAddressElementProps = Omit<RootAddressElementProps, "options"> & { options?: stripeJs.StripeCheckoutAddressElementOptions; }; type BillingAddressElementComponent = FunctionComponent<BillingAddressElementProps>; type ShippingAddressElementProps$0 = Omit<RootAddressElementProps, "options"> & { options?: stripeJs.StripeCheckoutAddressElementOptions; }; type ShippingAddressElementComponent$0 = FunctionComponent<ShippingAddressElementProps$0>; type PaymentElementProps$0 = Omit<RootPaymentElementProps, "options"> & { options?: stripeJs.StripeCheckoutPaymentElementOptions; }; type PaymentElementComponent$0 = FunctionComponent<PaymentElementProps$0>; type CheckoutFormProps$0 = RootCheckoutFormProps; type CheckoutFormComponent$0 = FunctionComponent<CheckoutFormProps$0>; type ExpressCheckoutElementProps$0 = Omit<RootExpressCheckoutElementProps, "options" | "onClick" | "onShippingAddressChange" | "onShippingRateChange"> & { options?: stripeJs.StripeCheckoutExpressCheckoutElementOptions; }; type ExpressCheckoutElementComponent$0 = FunctionComponent<ExpressCheckoutElementProps$0>; interface TaxIdElementProps$0 extends ElementProps { options: stripeJs.StripeTaxIdElementOptions; onChange?: (event: stripeJs.StripeTaxIdElementChangeEvent) => any; onReady?: (element: stripeJs.StripeTaxIdElement) => any; onEscape?: () => any; onLoadError?: (event: { elementType: "taxId"; error: StripeError; }) => any; onLoaderStart?: (event: { elementType: "taxId"; }) => any; } type TaxIdElementComponent$0 = FunctionComponent<TaxIdElementProps$0>; interface ContactDetailsElementProps$0 extends ElementProps { options?: stripeJs.StripeContactDetailsElementOptions; onChange?: (event: stripeJs.StripeContactDetailsElementChangeEvent) => any; onReady?: (element: stripeJs.StripeContactDetailsElement) => any; onEscape?: () => any; onLoadError?: (event: { elementType: "contactDetails"; error: StripeError; }) => any; onLoaderStart?: (event: { elementType: "contactDetails"; }) => any; } type ContactDetailsElementComponent$0 = FunctionComponent<ContactDetailsElementProps$0>; declare const CurrencySelectorElement: CurrencySelectorElementComponent; declare const PaymentElement: PaymentElementComponent$0; declare const CheckoutForm: CheckoutFormComponent$0; declare const ExpressCheckoutElement: ExpressCheckoutElementComponent$0; declare const TaxIdElement: TaxIdElementComponent$0; declare const ContactDetailsElement: ContactDetailsElementComponent$0; declare const BillingAddressElement: BillingAddressElementComponent; declare const ShippingAddressElement: ShippingAddressElementComponent$0; export { CheckoutElementsProvider, useCheckout, useCheckoutElements, useCheckoutForm, StripeUseCheckoutResult, StripeUseCheckoutElementsResult, StripeUseCheckoutFormResult, StripeCheckoutValue, StripeCheckoutElementsValue, StripeCheckoutFormValue, CheckoutFormProvider, CurrencySelectorElementProps, CurrencySelectorElementComponent, BillingAddressElementProps, BillingAddressElementComponent, ShippingAddressElementProps$0 as ShippingAddressElementProps, ShippingAddressElementComponent$0 as ShippingAddressElementComponent, PaymentElementProps$0 as PaymentElementProps, PaymentElementComponent$0 as PaymentElementComponent, CheckoutFormProps$0 as CheckoutFormProps, CheckoutFormComponent$0 as CheckoutFormComponent, ExpressCheckoutElementProps$0 as ExpressCheckoutElementProps, ExpressCheckoutElementComponent$0 as ExpressCheckoutElementComponent, TaxIdElementProps$0 as TaxIdElementProps, TaxIdElementComponent$0 as TaxIdElementComponent, ContactDetailsElementProps$0 as ContactDetailsElementProps, ContactDetailsElementComponent$0 as ContactDetailsElementComponent, CurrencySelectorElement, PaymentElement, CheckoutForm, ExpressCheckoutElement, TaxIdElement, ContactDetailsElement, BillingAddressElement, ShippingAddressElement };