/* TypeScript file generated from CheckoutHooks.res by genType. */

/* eslint-disable */
/* tslint:disable */

import * as CheckoutHooksJS from './CheckoutHooks.mjs';

import type {headlessConfirmResponseType as CheckoutTypes_headlessConfirmResponseType} from '../types/CheckoutTypes.gen';

import type {initPaymentSheetParamTypes as CheckoutTypes_initPaymentSheetParamTypes} from '../types/CheckoutTypes.gen';

import type {responseFromNativeModule as CheckoutTypes_responseFromNativeModule} from '../types/CheckoutTypes.gen';

import type {savedPaymentMethodType as CheckoutTypes_savedPaymentMethodType} from '../types/CheckoutTypes.gen';

import type {sessionParams as CheckoutTypes_sessionParams} from '../types/CheckoutTypes.gen';

export type confirmPaymentMethodArgumentType = { readonly sessionParams: CheckoutTypes_sessionParams; readonly cvc?: string };

export type confirmWithCustomerPaymentTokenArgumentType = {
  readonly sessionParams: CheckoutTypes_sessionParams; 
  readonly cvc?: string; 
  readonly paymentToken: string
};

export type useCheckoutReturnType = {
  readonly initPaymentSession: (_1:CheckoutTypes_initPaymentSheetParamTypes) => Promise<CheckoutTypes_sessionParams>; 
  readonly presentPaymentSheet: (_1:CheckoutTypes_sessionParams) => Promise<CheckoutTypes_responseFromNativeModule>; 
  readonly getCustomerSavedPaymentMethods: (_1:CheckoutTypes_sessionParams) => Promise<CheckoutTypes_sessionParams>; 
  readonly getCustomerDefaultSavedPaymentMethodData: (_1:CheckoutTypes_sessionParams) => Promise<CheckoutTypes_savedPaymentMethodType>; 
  readonly getCustomerLastUsedPaymentMethodData: (_1:CheckoutTypes_sessionParams) => Promise<CheckoutTypes_savedPaymentMethodType>; 
  readonly getCustomerSavedPaymentMethodData: (_1:CheckoutTypes_sessionParams) => Promise<CheckoutTypes_savedPaymentMethodType[]>; 
  readonly confirmWithCustomerDefaultPaymentMethod: (_1:confirmPaymentMethodArgumentType) => Promise<CheckoutTypes_headlessConfirmResponseType>; 
  readonly confirmWithCustomerLastUsedPaymentMethod: (_1:confirmPaymentMethodArgumentType) => Promise<CheckoutTypes_headlessConfirmResponseType>; 
  readonly confirmWithCustomerPaymentToken: (_1:confirmWithCustomerPaymentTokenArgumentType) => Promise<CheckoutTypes_headlessConfirmResponseType>
};

export const useCheckout: () => useCheckoutReturnType = CheckoutHooksJS.useCheckout as any;
