#pragma once

#include <ReactCommon/JavaTurboModule.h>
#include <ReactCommon/TurboModule.h>
#include <jsi/jsi.h>

/**
 * Note this import and that it is not present in autogenerated header file
 * under android/build/generated/source/codegen/jni/RNKC.h
 *
 * Here we are overriding autogenerated component descriptors by prioritizing our custom headers via include path setup.
 */
#include <react/renderer/components/RNKC/RNKCKeyboardControllerViewComponentDescriptor.h>
#include <react/renderer/components/RNKC/RNKCKeyboardGestureAreaComponentDescriptor.h>
#include <react/renderer/components/RNKC/RNKCOverKeyboardViewComponentDescriptor.h>
#include <react/renderer/components/RNKC/RNKCKeyboardBackgroundViewComponentDescriptor.h>
#include <react/renderer/components/RNKC/RNKCClippingScrollViewDecoratorViewComponentDescriptor.h>
#include <react/renderer/components/RNKC/RNKCKeyboardToolbarGroupViewComponentDescriptor.h>

#include <memory>
#include <string>

namespace facebook::react {
  JSI_EXPORT
  std::shared_ptr<TurboModule> RNKC_ModuleProvider(const std::string &moduleName, const JavaTurboModule::InitParams &params);
} // namespace facebook::react
