///
/// RNStartIoSdkAutolinking.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 "RNStartIoSdk-Swift-Cxx-Umbrella.hpp"
#import <type_traits>

#include "HybridRNStartIoSdkSpecSwift.hpp"
#include "HybridRNStartIoBannerSpecSwift.hpp"
#include "HybridRNStartIoNativeAdSpecSwift.hpp"

@interface RNStartIoSdkAutolinking : NSObject
@end

@implementation RNStartIoSdkAutolinking

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

  HybridObjectRegistry::registerHybridObjectConstructor(
    "RNStartIoSdk",
    []() -> std::shared_ptr<HybridObject> {
      std::shared_ptr<HybridRNStartIoSdkSpec> hybridObject = RNStartIoSdk::RNStartIoSdkAutolinking::createRNStartIoSdk();
      return hybridObject;
    }
  );
  HybridObjectRegistry::registerHybridObjectConstructor(
    "RNStartIoBanner",
    []() -> std::shared_ptr<HybridObject> {
      std::shared_ptr<HybridRNStartIoBannerSpec> hybridObject = RNStartIoSdk::RNStartIoSdkAutolinking::createRNStartIoBanner();
      return hybridObject;
    }
  );
  HybridObjectRegistry::registerHybridObjectConstructor(
    "RNStartIoNativeAd",
    []() -> std::shared_ptr<HybridObject> {
      std::shared_ptr<HybridRNStartIoNativeAdSpec> hybridObject = RNStartIoSdk::RNStartIoSdkAutolinking::createRNStartIoNativeAd();
      return hybridObject;
    }
  );
}

@end
