
/**
 * 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>

namespace facebook::react {

class OTRNPublisherProps final : public ViewProps {
 public:
  OTRNPublisherProps() = default;
  OTRNPublisherProps(const PropsParserContext& context, const OTRNPublisherProps &sourceProps, const RawProps &rawProps);

#pragma mark - Props

  std::string sessionId{};
  std::string publisherId{};
  bool publishAudio{false};
  bool publishVideo{false};
  bool publishCaptions{false};
  int audioBitrate{0};
  bool publisherAudioFallback{false};
  bool subscriberAudioFallback{false};
  bool audioTrack{false};
  std::string cameraPosition{};
  bool cameraTorch{false};
  Float cameraZoomFactor{0.0};
  bool enableDtx{false};
  int frameRate{0};
  std::string name{};
  std::string resolution{};
  bool scalableScreenshare{false};
  bool allowAudioCaptureWhileMuted{false};
  bool audioFallbackEnabled{false};
  bool videoTrack{false};
  std::string videoSource{};
  std::string videoContentHint{};
  int maxVideoBitrate{0};
  std::string videoBitratePreset{};
  std::string scaleBehavior{};
  bool publishSenderStats{false};
  std::string preferredVideoCodecs{};

  #ifdef RN_SERIALIZABLE_STATE
  ComponentName getDiffPropsImplementationTarget() const override;

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

class OTRNSubscriberProps final : public ViewProps {
 public:
  OTRNSubscriberProps() = default;
  OTRNSubscriberProps(const PropsParserContext& context, const OTRNSubscriberProps &sourceProps, const RawProps &rawProps);

#pragma mark - Props

  std::string sessionId{};
  std::string streamId{};
  bool subscribeToAudio{false};
  bool subscribeToVideo{false};
  std::string scaleBehavior{};
  bool subscribeToCaptions{false};
  Float audioVolume{0.0};
  int preferredFrameRate{0};
  std::string preferredResolution{};

  #ifdef RN_SERIALIZABLE_STATE
  ComponentName getDiffPropsImplementationTarget() const override;

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

} // namespace facebook::react
