
/**
 * 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.facebook.fbreact.specs;

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.ReadableArray;
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 NativeFitnessGeolocationSpec extends ReactContextBaseJavaModule implements TurboModule {
  public static final String NAME = "FitnessGeolocation";

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

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

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

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

  @ReactMethod
  @DoNotStrip
  public abstract void getCurrentPosition(ReadableMap options, Promise promise);

  @ReactMethod(isBlockingSynchronousMethod = true)
  @DoNotStrip
  public abstract double watchPosition(ReadableMap options);

  @ReactMethod
  @DoNotStrip
  public abstract void clearWatch(double watchId);

  @ReactMethod
  @DoNotStrip
  public abstract void stopLocationObserving();

  @ReactMethod
  @DoNotStrip
  public abstract void getPendingForJs(double limit, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void markDelivered(ReadableArray ids, Promise promise);

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

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

  @ReactMethod
  @DoNotStrip
  public abstract void requestAuthorization(String level, Promise promise);

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

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

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

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

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

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

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

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

  @ReactMethod
  @DoNotStrip
  public abstract void changePace(boolean isMoving, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void setActivityPaused(boolean paused, Promise promise);

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

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

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

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

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

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

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

  @ReactMethod
  @DoNotStrip
  public abstract void destroyLocation(String uuid, Promise promise);

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

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

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

  @ReactMethod
  @DoNotStrip
  public abstract void createSession(String name, String activityType, @Nullable String extras, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void endSession(String sessionId, ReadableMap data, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void discardSession(String sessionId, Promise promise);

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

  @ReactMethod
  @DoNotStrip
  public abstract void startMotionTracking(boolean includePedometer, Promise promise);

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

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

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

  @ReactMethod
  @DoNotStrip
  public abstract void devLog(String level, String tag, String message, @Nullable ReadableMap data);

  @ReactMethod
  @DoNotStrip
  public abstract void log(String level, String message, @Nullable ReadableMap data, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void getLog(ReadableMap query, Promise promise);

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

  @ReactMethod
  @DoNotStrip
  public abstract void uploadLog(String url, ReadableMap query, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void setLiveActivityEnabled(boolean enabled);

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

  @ReactMethod
  @DoNotStrip
  public abstract void startLiveActivity(String name, String activityType, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void updateLiveActivity(double distance, double duration, String pace, double speed, double calories, String gpsStatus, boolean isPaused);

  @ReactMethod
  @DoNotStrip
  public abstract void endLiveActivity(double distance, double duration, double calories, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void requestTemporaryFullAccuracy(String purpose, Promise promise);

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

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

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

  @ReactMethod(isBlockingSynchronousMethod = true)
  @DoNotStrip
  public abstract double startTimeBasedTracking(ReadableMap options);

  @ReactMethod
  @DoNotStrip
  public abstract void stopTimeBasedTracking(double watchId, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void pauseTimeBasedTracking(double watchId, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void resumeTimeBasedTracking(double watchId, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void setTimeBasedInterval(double watchId, double intervalMs, Promise promise);

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

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

  @ReactMethod
  @DoNotStrip
  public abstract void setOdometer(double value, Promise promise);
}
