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

#import <Foundation/Foundation.h>
#import <NitroModules/HybridObjectRegistry.hpp>
#import "ReactNativeHealthkit-Swift-Cxx-Umbrella.hpp"
#import <type_traits>

#include "HybridWorkoutsModuleSpecSwift.hpp"
#include "HybridCoreModuleSpecSwift.hpp"
#include "HybridCharacteristicTypeModuleSpecSwift.hpp"
#include "HybridQuantityTypeModuleSpecSwift.hpp"
#include "HybridCategoryTypeModuleSpecSwift.hpp"
#include "HybridCorrelationTypeModuleSpecSwift.hpp"
#include "HybridHeartbeatSeriesModuleSpecSwift.hpp"
#include "HybridStateOfMindModuleSpecSwift.hpp"

@interface ReactNativeHealthkitAutolinking : NSObject
@end

@implementation ReactNativeHealthkitAutolinking

+ (void) load {
  using namespace margelo::nitro;
  using namespace margelo::nitro::healthkit;

  HybridObjectRegistry::registerHybridObjectConstructor(
    "WorkoutsModule",
    []() -> std::shared_ptr<HybridObject> {
      std::shared_ptr<margelo::nitro::healthkit::HybridWorkoutsModuleSpec> hybridObject = ReactNativeHealthkit::ReactNativeHealthkitAutolinking::createWorkoutsModule();
      return hybridObject;
    }
  );
  HybridObjectRegistry::registerHybridObjectConstructor(
    "CoreModule",
    []() -> std::shared_ptr<HybridObject> {
      std::shared_ptr<margelo::nitro::healthkit::HybridCoreModuleSpec> hybridObject = ReactNativeHealthkit::ReactNativeHealthkitAutolinking::createCoreModule();
      return hybridObject;
    }
  );
  HybridObjectRegistry::registerHybridObjectConstructor(
    "CharacteristicTypeModule",
    []() -> std::shared_ptr<HybridObject> {
      std::shared_ptr<margelo::nitro::healthkit::HybridCharacteristicTypeModuleSpec> hybridObject = ReactNativeHealthkit::ReactNativeHealthkitAutolinking::createCharacteristicTypeModule();
      return hybridObject;
    }
  );
  HybridObjectRegistry::registerHybridObjectConstructor(
    "QuantityTypeModule",
    []() -> std::shared_ptr<HybridObject> {
      std::shared_ptr<margelo::nitro::healthkit::HybridQuantityTypeModuleSpec> hybridObject = ReactNativeHealthkit::ReactNativeHealthkitAutolinking::createQuantityTypeModule();
      return hybridObject;
    }
  );
  HybridObjectRegistry::registerHybridObjectConstructor(
    "CategoryTypeModule",
    []() -> std::shared_ptr<HybridObject> {
      std::shared_ptr<margelo::nitro::healthkit::HybridCategoryTypeModuleSpec> hybridObject = ReactNativeHealthkit::ReactNativeHealthkitAutolinking::createCategoryTypeModule();
      return hybridObject;
    }
  );
  HybridObjectRegistry::registerHybridObjectConstructor(
    "CorrelationTypeModule",
    []() -> std::shared_ptr<HybridObject> {
      std::shared_ptr<margelo::nitro::healthkit::HybridCorrelationTypeModuleSpec> hybridObject = ReactNativeHealthkit::ReactNativeHealthkitAutolinking::createCorrelationTypeModule();
      return hybridObject;
    }
  );
  HybridObjectRegistry::registerHybridObjectConstructor(
    "HeartbeatSeriesModule",
    []() -> std::shared_ptr<HybridObject> {
      std::shared_ptr<margelo::nitro::healthkit::HybridHeartbeatSeriesModuleSpec> hybridObject = ReactNativeHealthkit::ReactNativeHealthkitAutolinking::createHeartbeatSeriesModule();
      return hybridObject;
    }
  );
  HybridObjectRegistry::registerHybridObjectConstructor(
    "StateOfMindModule",
    []() -> std::shared_ptr<HybridObject> {
      std::shared_ptr<margelo::nitro::healthkit::HybridStateOfMindModuleSpec> hybridObject = ReactNativeHealthkit::ReactNativeHealthkitAutolinking::createStateOfMindModule();
      return hybridObject;
    }
  );
}

@end
