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

#include "HybridReactNativeBundleUpdateSpec.hpp"

namespace margelo::nitro::reactnativebundleupdate {

  void HybridReactNativeBundleUpdateSpec::loadHybridMethods() {
    // load base methods/properties
    HybridObject::loadHybridMethods();
    // load custom methods/properties
    registerHybrids(this, [](Prototype& prototype) {
      prototype.registerHybridMethod("downloadBundle", &HybridReactNativeBundleUpdateSpec::downloadBundle);
      prototype.registerHybridMethod("verifyBundle", &HybridReactNativeBundleUpdateSpec::verifyBundle);
      prototype.registerHybridMethod("verifyBundleASC", &HybridReactNativeBundleUpdateSpec::verifyBundleASC);
      prototype.registerHybridMethod("downloadBundleASC", &HybridReactNativeBundleUpdateSpec::downloadBundleASC);
      prototype.registerHybridMethod("installBundle", &HybridReactNativeBundleUpdateSpec::installBundle);
      prototype.registerHybridMethod("clearBundle", &HybridReactNativeBundleUpdateSpec::clearBundle);
      prototype.registerHybridMethod("clearAllJSBundleData", &HybridReactNativeBundleUpdateSpec::clearAllJSBundleData);
      prototype.registerHybridMethod("getFallbackUpdateBundleData", &HybridReactNativeBundleUpdateSpec::getFallbackUpdateBundleData);
      prototype.registerHybridMethod("setCurrentUpdateBundleData", &HybridReactNativeBundleUpdateSpec::setCurrentUpdateBundleData);
      prototype.registerHybridMethod("getWebEmbedPath", &HybridReactNativeBundleUpdateSpec::getWebEmbedPath);
      prototype.registerHybridMethod("getWebEmbedPathAsync", &HybridReactNativeBundleUpdateSpec::getWebEmbedPathAsync);
      prototype.registerHybridMethod("getJsBundlePath", &HybridReactNativeBundleUpdateSpec::getJsBundlePath);
      prototype.registerHybridMethod("getNativeAppVersion", &HybridReactNativeBundleUpdateSpec::getNativeAppVersion);
      prototype.registerHybridMethod("testVerification", &HybridReactNativeBundleUpdateSpec::testVerification);
      prototype.registerHybridMethod("isBundleExists", &HybridReactNativeBundleUpdateSpec::isBundleExists);
      prototype.registerHybridMethod("verifyExtractedBundle", &HybridReactNativeBundleUpdateSpec::verifyExtractedBundle);
      prototype.registerHybridMethod("listLocalBundles", &HybridReactNativeBundleUpdateSpec::listLocalBundles);
      prototype.registerHybridMethod("listAscFiles", &HybridReactNativeBundleUpdateSpec::listAscFiles);
      prototype.registerHybridMethod("getSha256FromFilePath", &HybridReactNativeBundleUpdateSpec::getSha256FromFilePath);
      prototype.registerHybridMethod("testDeleteJsBundle", &HybridReactNativeBundleUpdateSpec::testDeleteJsBundle);
      prototype.registerHybridMethod("testDeleteJsRuntimeDir", &HybridReactNativeBundleUpdateSpec::testDeleteJsRuntimeDir);
      prototype.registerHybridMethod("testDeleteMetadataJson", &HybridReactNativeBundleUpdateSpec::testDeleteMetadataJson);
      prototype.registerHybridMethod("testWriteEmptyMetadataJson", &HybridReactNativeBundleUpdateSpec::testWriteEmptyMetadataJson);
      prototype.registerHybridMethod("addDownloadListener", &HybridReactNativeBundleUpdateSpec::addDownloadListener);
      prototype.registerHybridMethod("removeDownloadListener", &HybridReactNativeBundleUpdateSpec::removeDownloadListener);
    });
  }

} // namespace margelo::nitro::reactnativebundleupdate
