/**
 * 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 NativeRNCWebViewModuleCxxSpec : public TurboModule {
public:
  static constexpr std::string_view kModuleName = "RNCWebViewModule";

protected:
  NativeRNCWebViewModuleCxxSpec(std::shared_ptr<CallInvoker> jsInvoker) : TurboModule(std::string{NativeRNCWebViewModuleCxxSpec::kModuleName}, jsInvoker) {
    methodMap_["isFileUploadSupported"] = MethodMetadata {.argCount = 0, .invoker = __isFileUploadSupported};
    methodMap_["shouldStartLoadWithLockIdentifier"] = MethodMetadata {.argCount = 2, .invoker = __shouldStartLoadWithLockIdentifier};
  }
  
private:
  static jsi::Value __isFileUploadSupported(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
    static_assert(
      bridging::getParameterCount(&T::isFileUploadSupported) == 1,
      "Expected isFileUploadSupported(...) to have 1 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::isFileUploadSupported,  static_cast<NativeRNCWebViewModuleCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
  }

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

} // namespace facebook::react
