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

#include "HybridLLMSpec.hpp"

namespace margelo::nitro::mlxreactnative {

  void HybridLLMSpec::loadHybridMethods() {
    // load base methods/properties
    HybridObject::loadHybridMethods();
    // load custom methods/properties
    registerHybrids(this, [](Prototype& prototype) {
      prototype.registerHybridGetter("isLoaded", &HybridLLMSpec::getIsLoaded);
      prototype.registerHybridGetter("isGenerating", &HybridLLMSpec::getIsGenerating);
      prototype.registerHybridGetter("modelId", &HybridLLMSpec::getModelId);
      prototype.registerHybridGetter("debug", &HybridLLMSpec::getDebug);
      prototype.registerHybridSetter("debug", &HybridLLMSpec::setDebug);
      prototype.registerHybridGetter("systemPrompt", &HybridLLMSpec::getSystemPrompt);
      prototype.registerHybridSetter("systemPrompt", &HybridLLMSpec::setSystemPrompt);
      prototype.registerHybridMethod("load", &HybridLLMSpec::load);
      prototype.registerHybridMethod("generate", &HybridLLMSpec::generate);
      prototype.registerHybridMethod("stream", &HybridLLMSpec::stream);
      prototype.registerHybridMethod("streamWithEvents", &HybridLLMSpec::streamWithEvents);
      prototype.registerHybridMethod("stop", &HybridLLMSpec::stop);
      prototype.registerHybridMethod("unload", &HybridLLMSpec::unload);
      prototype.registerHybridMethod("getLastGenerationStats", &HybridLLMSpec::getLastGenerationStats);
      prototype.registerHybridMethod("getHistory", &HybridLLMSpec::getHistory);
      prototype.registerHybridMethod("clearHistory", &HybridLLMSpec::clearHistory);
    });
  }

} // namespace margelo::nitro::mlxreactnative
