///
/// NitroIapOnLoad.hpp
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
/// https://github.com/mrousavy/nitro
/// Copyright © Marc Rousavy @ Margelo
///

#include <jni.h>
#include <functional>
#include <NitroModules/NitroDefines.hpp>

namespace margelo::nitro::iap {

  [[deprecated("Use registerNatives() instead.")]]
  int initialize(JavaVM* vm);

  /**
   * Register the native (C++) part of NitroIap, and autolinks all Hybrid Objects.
   * Call this in your `JNI_OnLoad` function (probably inside `cpp-adapter.cpp`),
   * inside a `facebook::jni::initialize(vm, ...)` call.
   * Example:
   * ```cpp (cpp-adapter.cpp)
   * JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void*) {
   *   return facebook::jni::initialize(vm, []() {
   *     // register all NitroIap HybridObjects
   *     margelo::nitro::iap::registerNatives();
   *     // any other custom registrations go here.
   *   });
   * }
   * ```
   */
  void registerAllNatives();

} // namespace margelo::nitro::iap
