import { TurboModuleRegistry } from 'react-native'; import type { TurboModule } from 'react-native/Libraries/TurboModule/RCTExport'; import type { Int32 } from 'react-native/Libraries/Types/CodegenTypes'; import type { CanAddCardToWalletParams, CanAddCardToWalletResult, ConfirmPaymentResult, ConfirmPaymentSheetPaymentResult, ConfirmSetupIntentResult, CreatePaymentMethodResult, CreateTokenForCVCUpdateResult, CreateTokenResult, CustomerAdapter, CustomerSessionClientSecret, CustomerSheetError, CustomerSheetInitParams, CustomerSheetPresentParams, CustomerSheetResult, FinancialConnections, HandleNextActionForSetupResult, HandleNextActionResult, InitialiseParams, InitPaymentSheetResult, IsCardInWalletResult, OpenApplePaySetupResult, PaymentIntent, PaymentMethod, PaymentSheet, PlatformPay, PresentPaymentSheetResult, RetrievePaymentIntentResult, RetrieveSetupIntentResult, SetupIntent, StripeError, Token, VerifyMicrodepositsParams, CreateRadarSessionResult, } from '../types'; import type { EmbeddedPaymentElementConfiguration, EmbeddedPaymentElementResult, } from '../types/EmbeddedPaymentElement'; import type { IntentConfiguration } from '../types/PaymentSheet'; import type { UnsafeObject } from './utils'; type CustomerSheetInitResult = UnsafeObject<{ error?: StripeError; }>; export interface Spec extends TurboModule { initialise(params: UnsafeObject): Promise; createPaymentMethod( params: UnsafeObject, options: UnsafeObject ): Promise; handleNextAction( paymentIntentClientSecret: string, returnURL?: string | null ): Promise; handleNextActionForSetup( setupIntentClientSecret: string, returnURL?: string | null ): Promise; confirmPayment( paymentIntentClientSecret: string, params?: UnsafeObject, options?: UnsafeObject ): Promise; confirmSetupIntent( paymentIntentClientSecret: string, params: UnsafeObject, options: UnsafeObject ): Promise; retrievePaymentIntent( clientSecret: string ): Promise; retrieveSetupIntent(clientSecret: string): Promise; initPaymentSheet( params: UnsafeObject ): Promise; intentCreationCallback( result: UnsafeObject ): Promise; confirmationTokenCreationCallback( result: UnsafeObject ): Promise; customPaymentMethodResultCallback( result: UnsafeObject ): Promise; presentPaymentSheet( options: UnsafeObject ): Promise; confirmPaymentSheetPayment(): Promise; createTokenForCVCUpdate(cvc: string): Promise; handleURLCallback(url: string): Promise; createToken( params: UnsafeObject ): Promise; openApplePaySetup(): Promise; verifyMicrodeposits( isPaymentIntent: boolean, clientSecret: string, params: UnsafeObject ): Promise; collectBankAccount( isPaymentIntent: boolean, clientSecret: string, params: UnsafeObject< Omit > ): Promise; getConstants(): { API_VERSIONS: { CORE: string; ISSUING: string }; SYSTEM_INFO: { sdkVersion: string; osVersion: string; deviceType: string; appName: string; appVersion: string; }; }; canAddCardToWallet( params: UnsafeObject ): Promise; isCardInWallet( params: UnsafeObject<{ cardLastFour: string }> ): Promise; collectBankAccountToken( clientSecret: string, params: UnsafeObject ): Promise; collectFinancialConnectionsAccounts( clientSecret: string, params: UnsafeObject ): Promise; resetPaymentSheetCustomer(): Promise; isPlatformPaySupported( params: UnsafeObject<{ googlePay?: PlatformPay.IsGooglePaySupportedParams }> ): Promise; createPlatformPayPaymentMethod( params: UnsafeObject, usesDeprecatedTokenFlow: boolean ): Promise; dismissPlatformPay(): Promise; updatePlatformPaySheet( summaryItems: ReadonlyArray>, shippingMethods: ReadonlyArray>, errors: ReadonlyArray ): Promise; confirmPlatformPay( clientSecret: string, params: UnsafeObject, isPaymentIntent: boolean ): Promise< PlatformPay.ConfirmPaymentResult | PlatformPay.ConfirmSetupIntentResult >; configureOrderTracking( orderTypeIdentifier: string, orderIdentifier: string, webServiceUrl: string, authenticationToken: string ): Promise; initCustomerSheet( params: UnsafeObject, customerAdapterOverrides: UnsafeObject<{ [Property in keyof CustomerAdapter]: boolean; }> ): Promise; presentCustomerSheet( params: UnsafeObject ): Promise; retrieveCustomerSheetPaymentOptionSelection(): Promise; customerAdapterFetchPaymentMethodsCallback( paymentMethods: ReadonlyArray ): Promise; customerAdapterAttachPaymentMethodCallback( paymentMethod: Object ): Promise; customerAdapterDetachPaymentMethodCallback( paymentMethod: Object ): Promise; customerAdapterSetSelectedPaymentOptionCallback(): Promise; customerAdapterFetchSelectedPaymentOptionCallback( paymentOption: string | null ): Promise; customerAdapterSetupIntentClientSecretForCustomerAttachCallback( clientSecret: string ): Promise; clientSecretProviderSetupIntentClientSecretCallback( setupIntentClientSecret: string ): Promise; clientSecretProviderCustomerSessionClientSecretCallback( customerSessionClientSecret: UnsafeObject ): Promise; createEmbeddedPaymentElement( intentConfig: UnsafeObject, configuration: UnsafeObject ): Promise; confirmEmbeddedPaymentElement( viewTag: Int32 ): Promise; updateEmbeddedPaymentElement( intentConfig: UnsafeObject ): Promise; clearEmbeddedPaymentOption(viewTag: Int32): Promise; createRadarSession(): Promise; setFinancialConnectionsForceNativeFlow(enabled: boolean): Promise; openAuthenticatedWebView( id: string, url: string ): Promise<{ url?: string } | null>; downloadAndShareFile( url: string, filename?: string | null ): Promise<{ success: boolean; error?: string }>; authWebViewDeepLinkHandled(id: string): Promise; storeStripeConnectDeepLink(url: string): Promise; pollAndClearPendingStripeConnectUrls(): Promise; // Events addListener: (eventType: string) => void; removeListeners: (count: number) => void; } export default TurboModuleRegistry.getEnforcing('StripeSdk');