
/**
 * 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.urbanairship.reactnative;

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 NativeRNAirshipSpec extends ReactContextBaseJavaModule implements TurboModule {
  public static final String NAME = "RNAirship";

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

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

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

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

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

  @ReactMethod
  @DoNotStrip
  public abstract void takePendingEvents(String eventName, boolean isHeadlessJS, Promise promise);

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

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

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

  @ReactMethod
  @DoNotStrip
  public abstract void channelAddTag(String tag, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void channelRemoveTag(String tag, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void channelEditTags(ReadableArray operations, Promise promise);

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

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

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

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

  @ReactMethod
  @DoNotStrip
  public abstract void channelEditTagGroups(ReadableArray operations, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void channelEditAttributes(ReadableArray operations, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void channelEditSubscriptionLists(ReadableArray operations, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void pushSetUserNotificationsEnabled(boolean enabled, Promise promise);

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

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

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

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

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

  @ReactMethod
  @DoNotStrip
  public abstract void pushClearNotifications();

  @ReactMethod
  @DoNotStrip
  public abstract void pushClearNotification(String identifier);

  @ReactMethod
  @DoNotStrip
  public abstract void pushIosSetForegroundPresentationOptions(ReadableArray options, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void pushIosSetNotificationOptions(ReadableArray options, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void pushIosSetAutobadgeEnabled(boolean enabled, Promise promise);

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

  @ReactMethod
  @DoNotStrip
  public abstract void pushIosSetBadgeNumber(double badgeNumber, Promise promise);

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

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

  @ReactMethod
  @DoNotStrip
  public abstract void pushIosOverridePresentationOptions(String requestId, @Nullable ReadableArray options);

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

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

  @ReactMethod
  @DoNotStrip
  public abstract void pushAndroidIsNotificationChannelEnabled(String channel, Promise promise);

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

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

  @ReactMethod
  @DoNotStrip
  public abstract void pushAndroidOverrideForegroundDisplay(String requestId, boolean shouldDisplay);

  @ReactMethod
  @DoNotStrip
  public abstract void contactIdentify(String namedUser, Promise promise);

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

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

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

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

  @ReactMethod
  @DoNotStrip
  public abstract void contactEditTagGroups(ReadableArray operations, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void contactEditAttributes(ReadableArray operations, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void contactEditSubscriptionLists(ReadableArray operations, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void analyticsTrackScreen(@Nullable String screen, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void analyticsAssociateIdentifier(String key, @Nullable String identifier, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void addCustomEvent(ReadableMap event, Promise promise);

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

  @ReactMethod
  @DoNotStrip
  public abstract void actionRun(ReadableMap action, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void privacyManagerSetEnabledFeatures(ReadableArray features, Promise promise);

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

  @ReactMethod
  @DoNotStrip
  public abstract void privacyManagerEnableFeature(ReadableArray features, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void privacyManagerDisableFeature(ReadableArray features, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void privacyManagerIsFeatureEnabled(ReadableArray features, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void inAppSetDisplayInterval(double milliseconds, Promise promise);

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

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

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

  @ReactMethod
  @DoNotStrip
  public abstract void inAppResendPendingEmbeddedEvent();

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

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

  @ReactMethod
  @DoNotStrip
  public abstract void messageCenterDisplay(@Nullable String messageId, Promise promise);

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

  @ReactMethod
  @DoNotStrip
  public abstract void messageCenterDeleteMessage(String messageId, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void messageCenterMarkMessageRead(String messageId, Promise promise);

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

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

  @ReactMethod
  @DoNotStrip
  public abstract void messageCenterShowMessageCenter(@Nullable String messageId, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void messageCenterShowMessageView(String messageId, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void preferenceCenterDisplay(String preferenceCenterId, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void preferenceCenterGetConfig(String preferenceCenterId, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void preferenceCenterAutoLaunchDefaultPreferenceCenter(String preferenceCenterId, boolean autoLaunch);

  @ReactMethod
  @DoNotStrip
  public abstract void localeSetLocaleOverride(String localeIdentifier, Promise promise);

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

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

  @ReactMethod
  @DoNotStrip
  public abstract void featureFlagManagerFlag(String flagName, boolean useResultCache, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void featureFlagManagerTrackInteraction(ReadableMap flag, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void featureFlagManagerResultCacheGetFlag(String flagName, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void featureFlagManagerResultCacheSetFlag(ReadableMap flag, double ttl, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void featureFlagManagerResultCacheRemoveFlag(String flagName, Promise promise);

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

  @ReactMethod
  @DoNotStrip
  public abstract void liveActivityList(ReadableMap request, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void liveActivityStart(ReadableMap request, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void liveActivityUpdate(ReadableMap request, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void liveActivityEnd(ReadableMap request, Promise promise);

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

  @ReactMethod
  @DoNotStrip
  public abstract void liveUpdateList(ReadableMap request, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void liveUpdateStart(ReadableMap request, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void liveUpdateUpdate(ReadableMap request, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void liveUpdateEnd(ReadableMap request, Promise promise);

  @ReactMethod
  @DoNotStrip
  public abstract void liveUpdateClearAll(Promise promise);
}
