import type { TurboModule } from 'react-native'; import { TurboModuleRegistry } from 'react-native'; // Интерфейс для React Native Codegen (должен называться именно "Spec") export interface Spec extends TurboModule { // Базовые методы initialize(publicId: string): Promise; getPublicKey(): Promise; // Методы валидации карт isCardNumberValid(cardNumber: string): Promise; isExpDateValid(expDate: string): Promise; isValidCvv(cvv: string, isCvvRequired: boolean): Promise; cardTypeFromCardNumber(cardNumber: string): Promise; // Методы работы с криптограммой makeCardCryptogramPacket( cardNumber: string, expDate: string, cvv: string, merchantPublicID: string, publicKey: string, keyVersion: number ): Promise; // Методы платежей createIntent(paymentData: Object): Promise; createIntentApiPay( paymentData: Object, cardCryptogram: string, intentId: string ): Promise; getIntentWaitStatus(paymentData: Object, type: string): Promise; presentPaymentForm(paymentData: Object): Promise; // Дополнительные методы getBankInfo(cardNumber: string): Promise; } const CloudpaymentsSdkModule = TurboModuleRegistry.getEnforcing('CloudpaymentsSdk'); export default CloudpaymentsSdkModule;