
/**
 * 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.rn.wifi.p2p;

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;
import javax.annotation.Nullable;

public abstract class NativeRnWifiP2PSpec extends ReactContextBaseJavaModule implements TurboModule {
  public static final String NAME = "RnWifiP2P";

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

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

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

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

  @ReactMethod
  @DoNotStrip
  public abstract void setConfig(ReadableMap config);

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

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

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

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

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

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

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

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

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

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

  @ReactMethod
  @DoNotStrip
  public abstract void sendFile(String path, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void sendFileTo(String path, String address, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void receiveFile(String folder, String fileName, boolean forceToScanGallery, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void sendMessage(String message, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void sendMessageTo(String message, String address, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void startReceivingMessage(@Nullable ReadableMap props, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void stopReceivingMessage();
}
