/**
 * 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 "RNSpeechSpecJSI.h"

namespace facebook::react {

static jsi::Value __hostFunction_NativeSpeechCxxSpecJSI_reset(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
  static_cast<NativeSpeechCxxSpecJSI *>(&turboModule)->reset(
    rt
  );
  return jsi::Value::undefined();
}
static jsi::Value __hostFunction_NativeSpeechCxxSpecJSI_stop(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
  return static_cast<NativeSpeechCxxSpecJSI *>(&turboModule)->stop(
    rt
  );
}
static jsi::Value __hostFunction_NativeSpeechCxxSpecJSI_pause(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
  return static_cast<NativeSpeechCxxSpecJSI *>(&turboModule)->pause(
    rt
  );
}
static jsi::Value __hostFunction_NativeSpeechCxxSpecJSI_resume(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
  return static_cast<NativeSpeechCxxSpecJSI *>(&turboModule)->resume(
    rt
  );
}
static jsi::Value __hostFunction_NativeSpeechCxxSpecJSI_isSpeaking(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
  return static_cast<NativeSpeechCxxSpecJSI *>(&turboModule)->isSpeaking(
    rt
  );
}
static jsi::Value __hostFunction_NativeSpeechCxxSpecJSI_speak(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
  return static_cast<NativeSpeechCxxSpecJSI *>(&turboModule)->speak(
    rt,
    count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
  );
}
static jsi::Value __hostFunction_NativeSpeechCxxSpecJSI_initialize(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
  static_cast<NativeSpeechCxxSpecJSI *>(&turboModule)->initialize(
    rt,
    count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asObject(rt)
  );
  return jsi::Value::undefined();
}
static jsi::Value __hostFunction_NativeSpeechCxxSpecJSI_getAvailableVoices(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
  return static_cast<NativeSpeechCxxSpecJSI *>(&turboModule)->getAvailableVoices(
    rt,
    count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
  );
}
static jsi::Value __hostFunction_NativeSpeechCxxSpecJSI_speakWithOptions(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
  return static_cast<NativeSpeechCxxSpecJSI *>(&turboModule)->speakWithOptions(
    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].asObject(rt)
  );
}

NativeSpeechCxxSpecJSI::NativeSpeechCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker)
  : TurboModule("Speech", jsInvoker) {
  methodMap_["reset"] = MethodMetadata {0, __hostFunction_NativeSpeechCxxSpecJSI_reset};
  methodMap_["stop"] = MethodMetadata {0, __hostFunction_NativeSpeechCxxSpecJSI_stop};
  methodMap_["pause"] = MethodMetadata {0, __hostFunction_NativeSpeechCxxSpecJSI_pause};
  methodMap_["resume"] = MethodMetadata {0, __hostFunction_NativeSpeechCxxSpecJSI_resume};
  methodMap_["isSpeaking"] = MethodMetadata {0, __hostFunction_NativeSpeechCxxSpecJSI_isSpeaking};
  methodMap_["speak"] = MethodMetadata {1, __hostFunction_NativeSpeechCxxSpecJSI_speak};
  methodMap_["initialize"] = MethodMetadata {1, __hostFunction_NativeSpeechCxxSpecJSI_initialize};
  methodMap_["getAvailableVoices"] = MethodMetadata {1, __hostFunction_NativeSpeechCxxSpecJSI_getAvailableVoices};
  methodMap_["speakWithOptions"] = MethodMetadata {2, __hostFunction_NativeSpeechCxxSpecJSI_speakWithOptions};
}


} // namespace facebook::react
