/**
 * 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: GenerateModuleH.js
 */

#pragma once

#include <ReactCommon/TurboModule.h>
#include <react/bridging/Bridging.h>

namespace facebook::react {


template <typename T>
class JSI_EXPORT NativeConsumetCxxSpec : public TurboModule {
public:
  static constexpr std::string_view kModuleName = "Consumet";

protected:
  NativeConsumetCxxSpec(std::shared_ptr<CallInvoker> jsInvoker) : TurboModule(std::string{NativeConsumetCxxSpec::kModuleName}, jsInvoker) {
    methodMap_["bypassDdosGuard"] = MethodMetadata {.argCount = 1, .invoker = __bypassDdosGuard};
    methodMap_["getDdosGuardCookiesWithWebView"] = MethodMetadata {.argCount = 1, .invoker = __getDdosGuardCookiesWithWebView};
    methodMap_["makeGetRequestWithWebView"] = MethodMetadata {.argCount = 2, .invoker = __makeGetRequestWithWebView};
    methodMap_["makePostRequestWithWebView"] = MethodMetadata {.argCount = 3, .invoker = __makePostRequestWithWebView};
    methodMap_["makePostRequest"] = MethodMetadata {.argCount = 3, .invoker = __makePostRequest};
    methodMap_["deobfuscateScript"] = MethodMetadata {.argCount = 1, .invoker = __deobfuscateScript};
    methodMap_["multiply"] = MethodMetadata {.argCount = 2, .invoker = __multiply};
  }
  
private:
  static jsi::Value __bypassDdosGuard(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
    static_assert(
      bridging::getParameterCount(&T::bypassDdosGuard) == 2,
      "Expected bypassDdosGuard(...) to have 2 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::bypassDdosGuard,  static_cast<NativeConsumetCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
      count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt));
  }

  static jsi::Value __getDdosGuardCookiesWithWebView(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
    static_assert(
      bridging::getParameterCount(&T::getDdosGuardCookiesWithWebView) == 2,
      "Expected getDdosGuardCookiesWithWebView(...) to have 2 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::getDdosGuardCookiesWithWebView,  static_cast<NativeConsumetCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
      count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt));
  }

  static jsi::Value __makeGetRequestWithWebView(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
    static_assert(
      bridging::getParameterCount(&T::makeGetRequestWithWebView) == 3,
      "Expected makeGetRequestWithWebView(...) to have 3 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::makeGetRequestWithWebView,  static_cast<NativeConsumetCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
      count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt),
      count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asObject(rt));
  }

  static jsi::Value __makePostRequestWithWebView(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
    static_assert(
      bridging::getParameterCount(&T::makePostRequestWithWebView) == 4,
      "Expected makePostRequestWithWebView(...) to have 4 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::makePostRequestWithWebView,  static_cast<NativeConsumetCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
      count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt),
      count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asObject(rt),
      count <= 2 ? throw jsi::JSError(rt, "Expected argument in position 2 to be passed") : args[2].asString(rt));
  }

  static jsi::Value __makePostRequest(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
    static_assert(
      bridging::getParameterCount(&T::makePostRequest) == 4,
      "Expected makePostRequest(...) to have 4 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::makePostRequest,  static_cast<NativeConsumetCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
      count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt),
      count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asObject(rt),
      count <= 2 ? throw jsi::JSError(rt, "Expected argument in position 2 to be passed") : args[2].asString(rt));
  }

  static jsi::Value __deobfuscateScript(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
    static_assert(
      bridging::getParameterCount(&T::deobfuscateScript) == 2,
      "Expected deobfuscateScript(...) to have 2 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::deobfuscateScript,  static_cast<NativeConsumetCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
      count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt));
  }

  static jsi::Value __multiply(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
    static_assert(
      bridging::getParameterCount(&T::multiply) == 3,
      "Expected multiply(...) to have 3 parameters");
    return bridging::callFromJs<double>(rt, &T::multiply,  static_cast<NativeConsumetCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
      count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber(),
      count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asNumber());
  }
};

} // namespace facebook::react
