
/**
 * 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>
#include <vector>

namespace facebook::react {

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

#ifdef RN_SERIALIZABLE_STATE
  bool operator==(const CKCameraBarcodeFrameSizeStruct&) const = default;

  folly::dynamic toDynamic() const {
    folly::dynamic result = folly::dynamic::object();
    result["width"] = width;
    result["height"] = height;
    return result;
  }
#endif
};

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]";
}

#ifdef RN_SERIALIZABLE_STATE
static inline folly::dynamic toDynamic(const CKCameraBarcodeFrameSizeStruct &value) {
  return value.toDynamic();
}
#endif
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};
  bool iOsDeferredStart{false};
  CKCameraBarcodeFrameSizeStruct barcodeFrameSize{};
  bool shutterPhotoSound{false};
  std::vector<std::string> allowedBarcodeTypes{};
  int shutterAnimationDuration{-1};
  std::string outputPath{};

  #ifdef RN_SERIALIZABLE_STATE
  ComponentName getDiffPropsImplementationTarget() const override;

  folly::dynamic getDiffProps(const Props* prevProps) const override;
  #endif
};

} // namespace facebook::react
