
/**
 * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
 *
 * Do not edit this file as changes may cause incorrect behavior and will be lost
 * once the code is regenerated.
 *
 * @generated by codegen project: GenerateModuleJavaSpec.js
 *
 * @nolint
 */

package com.reactnativestripesdk;

import com.facebook.proguard.annotations.DoNotStrip;
import com.facebook.react.bridge.Promise;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.bridge.ReadableMap;
import com.facebook.react.turbomodule.core.interfaces.TurboModule;
import javax.annotation.Nonnull;

public abstract class NativeOnrampSdkModuleSpec extends ReactContextBaseJavaModule implements TurboModule {
  public static final String NAME = "OnrampSdk";

  public NativeOnrampSdkModuleSpec(ReactApplicationContext reactContext) {
    super(reactContext);
  }

  @Override
  public @Nonnull String getName() {
    return NAME;
  }

  @ReactMethod
  @DoNotStrip
  public abstract void initialise(ReadableMap params, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void configureOnramp(ReadableMap config, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void hasLinkAccount(String email, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void registerLinkUser(ReadableMap info, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void registerWalletAddress(String walletAddress, String network, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void attachKycInfo(ReadableMap kycInfo, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void updatePhoneNumber(String phone, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void verifyIdentity(Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void collectPaymentMethod(String paymentMethod, ReadableMap platformPayParams, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void provideCheckoutClientSecret(String clientSecret);

  @ReactMethod
  @DoNotStrip
  public abstract void createCryptoPaymentToken(Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void performCheckout(String onrampSessionId, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void onrampAuthorize(String linkAuthIntentId, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void getCryptoTokenDisplayData(ReadableMap token, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void authenticateUserWithToken(String token, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void presentKycInfoVerification(ReadableMap updatedAddress, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void logout(Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void addListener(String eventType);

  @ReactMethod
  @DoNotStrip
  public abstract void removeListeners(double count);
}
