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

#include "RNTinyWavPackDecoderSpecJSI.h"

namespace facebook::react {

static jsi::Value __hostFunction_NativeTinyWavPackDecoderCxxSpecJSI_decodeWavPack(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
  return static_cast<NativeTinyWavPackDecoderCxxSpecJSI *>(&turboModule)->decodeWavPack(
    rt,
    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].asString(rt),
    count <= 2 || args[2].isUndefined() ? std::nullopt : std::make_optional(args[2].asNumber()),
    count <= 3 || args[3].isUndefined() ? std::nullopt : std::make_optional(args[3].asNumber())
  );
}
static jsi::Value __hostFunction_NativeTinyWavPackDecoderCxxSpecJSI_addListener(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
  static_cast<NativeTinyWavPackDecoderCxxSpecJSI *>(&turboModule)->addListener(
    rt,
    count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
  );
  return jsi::Value::undefined();
}
static jsi::Value __hostFunction_NativeTinyWavPackDecoderCxxSpecJSI_removeListeners(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
  static_cast<NativeTinyWavPackDecoderCxxSpecJSI *>(&turboModule)->removeListeners(
    rt,
    count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber()
  );
  return jsi::Value::undefined();
}

NativeTinyWavPackDecoderCxxSpecJSI::NativeTinyWavPackDecoderCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker)
  : TurboModule("TinyWavPackDecoderModule", jsInvoker) {
  methodMap_["decodeWavPack"] = MethodMetadata {4, __hostFunction_NativeTinyWavPackDecoderCxxSpecJSI_decodeWavPack};
  methodMap_["addListener"] = MethodMetadata {1, __hostFunction_NativeTinyWavPackDecoderCxxSpecJSI_addListener};
  methodMap_["removeListeners"] = MethodMetadata {1, __hostFunction_NativeTinyWavPackDecoderCxxSpecJSI_removeListeners};
}


} // namespace facebook::react
