
/**
 * 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: GeneratePropsH.js
 */
#pragma once

#include <react/renderer/components/view/ViewProps.h>
#include <react/renderer/core/PropsParserContext.h>
#include <react/renderer/core/propsConversions.h>
#include <react/renderer/graphics/Color.h>

namespace facebook::react {

struct CKCameraBarcodeFrameSizeStruct {
  Float width{300.0};
  Float height{150.0};
};

static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, CKCameraBarcodeFrameSizeStruct &result) {
  auto map = (std::unordered_map<std::string, RawValue>)value;

  auto tmp_width = map.find("width");
  if (tmp_width != map.end()) {
    fromRawValue(context, tmp_width->second, result.width);
  }
  auto tmp_height = map.find("height");
  if (tmp_height != map.end()) {
    fromRawValue(context, tmp_height->second, result.height);
  }
}

static inline std::string toString(const CKCameraBarcodeFrameSizeStruct &value) {
  return "[Object CKCameraBarcodeFrameSizeStruct]";
}
class CKCameraProps final : public ViewProps {
 public:
  CKCameraProps() = default;
  CKCameraProps(const PropsParserContext& context, const CKCameraProps &sourceProps, const RawProps &rawProps);

#pragma mark - Props

  std::string flashMode{};
  std::string focusMode{};
  std::string maxPhotoQualityPrioritization{};
  std::string zoomMode{};
  double zoom{-1.0};
  double maxZoom{-1.0};
  std::string torchMode{};
  std::string cameraType{};
  bool scanBarcode{false};
  bool showFrame{false};
  SharedColor laserColor{};
  SharedColor frameColor{};
  std::string ratioOverlay{};
  SharedColor ratioOverlayColor{};
  int resetFocusTimeout{-1};
  bool resetFocusWhenMotionDetected{false};
  std::string resizeMode{};
  int scanThrottleDelay{-1};
  CKCameraBarcodeFrameSizeStruct barcodeFrameSize{};
  bool shutterPhotoSound{false};
  int shutterAnimationDuration{-1};
  std::string outputPath{};
};

} // namespace facebook::react
