import type { InjectionKey, Ref } from 'vue-demi'; import type { Stripe, StripeElements, StripeCheckoutElementsSdk, StripeCheckoutFormLoadActionsSuccess, StripeCheckoutFormSdk, StripeCheckoutLoadActionsSuccess, StripeCheckoutSession } from '@stripe/stripe-js'; export interface StripeInstance { stripe: Ref; loading: Ref; error: Ref; } export interface StripeElementsInstance { elements: Ref; loading: Ref; error: Ref; /** Whether the group is created with a `clientSecret` or a `mode` (deferred Intent). */ hasIntent?: () => boolean; } export interface StripeCheckoutInstance { /** Checkout Elements SDK handle (`stripe.initCheckoutElementsSdk()`, synchronous). */ checkout: Ref; /** Session actions, available once `checkout.loadActions()` resolves. */ actions: Ref; session: Ref; /** True until `loadActions()` settles. */ loading: Ref; error: Ref; } export interface StripeCheckoutFormInstance { /** Checkout Form SDK handle (`stripe.initCheckoutFormSdk()`, synchronous; Stripe beta). */ checkout: Ref; /** Form SDK actions, available once `checkout.loadActions()` resolves. */ actions: Ref; session: Ref; /** True until `loadActions()` settles. */ loading: Ref; error: Ref; } export interface VueStripeConfig { publishableKey: string; stripeAccount?: string | undefined; apiVersion?: string | undefined; locale?: string | undefined; } export declare const stripeInjectionKey: InjectionKey; export declare const stripeElementsInjectionKey: InjectionKey; export declare const stripeCheckoutInjectionKey: InjectionKey; export declare const stripeCheckoutFormInjectionKey: InjectionKey; export declare const stripeConfigInjectionKey: InjectionKey;