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

#include <react/renderer/components/view/ViewEventEmitter.h>


namespace facebook::react {
class OTRNPublisherEventEmitter : public ViewEventEmitter {
 public:
  using ViewEventEmitter::ViewEventEmitter;

  struct OnError {
      std::string code;
    std::string message;
    };

  struct OnStreamCreated {
      std::string streamId;
    };

  struct OnStreamDestroyed {
      std::string streamId;
    };

  struct OnAudioLevel {
      Float audioLevel;
    };

  struct OnAudioNetworkStats {
      std::string jsonStats;
    };

  struct OnMuteForced {
      
    };

  struct OnRtcStatsReport {
      std::string jsonStats;
    };

  struct OnVideoDisabled {
      
    };

  struct OnVideoDisableWarning {
      
    };

  struct OnVideoDisableWarningLifted {
      
    };

  struct OnVideoEnabled {
      
    };

  struct OnVideoNetworkStats {
      std::string jsonStats;
    };
  void onError(OnError value) const;

  void onStreamCreated(OnStreamCreated value) const;

  void onStreamDestroyed(OnStreamDestroyed value) const;

  void onAudioLevel(OnAudioLevel value) const;

  void onAudioNetworkStats(OnAudioNetworkStats value) const;

  void onMuteForced(OnMuteForced value) const;

  void onRtcStatsReport(OnRtcStatsReport value) const;

  void onVideoDisabled(OnVideoDisabled value) const;

  void onVideoDisableWarning(OnVideoDisableWarning value) const;

  void onVideoDisableWarningLifted(OnVideoDisableWarningLifted value) const;

  void onVideoEnabled(OnVideoEnabled value) const;

  void onVideoNetworkStats(OnVideoNetworkStats value) const;
};
class OTRNSubscriberEventEmitter : public ViewEventEmitter {
 public:
  using ViewEventEmitter::ViewEventEmitter;

  struct OnSubscriberConnectedStreamConnection {
      std::string creationTime;
    std::string data;
    std::string connectionId;
    };

  struct OnSubscriberConnectedStream {
      std::string name;
    std::string streamId;
    bool hasAudio;
    bool hasCaptions;
    bool hasVideo;
    std::string sessionId;
    double width;
    double height;
    std::string videoType;
    OnSubscriberConnectedStreamConnection connection;
    std::string creationTime;
    };

  struct OnSubscriberConnected {
      OnSubscriberConnectedStream stream;
    };

  struct OnSubscriberDisconnectedStreamConnection {
      std::string creationTime;
    std::string data;
    std::string connectionId;
    };

  struct OnSubscriberDisconnectedStream {
      std::string name;
    std::string streamId;
    bool hasAudio;
    bool hasCaptions;
    bool hasVideo;
    std::string sessionId;
    double width;
    double height;
    std::string videoType;
    OnSubscriberDisconnectedStreamConnection connection;
    std::string creationTime;
    };

  struct OnSubscriberDisconnected {
      OnSubscriberDisconnectedStream stream;
    };

  struct OnSubscriberErrorStreamConnection {
      std::string creationTime;
    std::string data;
    std::string connectionId;
    };

  struct OnSubscriberErrorStream {
      std::string name;
    std::string streamId;
    bool hasAudio;
    bool hasCaptions;
    bool hasVideo;
    std::string sessionId;
    double width;
    double height;
    std::string videoType;
    OnSubscriberErrorStreamConnection connection;
    std::string creationTime;
    };

  struct OnSubscriberErrorError {
      std::string code;
    std::string message;
    };

  struct OnSubscriberError {
      OnSubscriberErrorStream stream;
    OnSubscriberErrorError error;
    };

  struct OnRtcStatsReportStreamConnection {
      std::string creationTime;
    std::string data;
    std::string connectionId;
    };

  struct OnRtcStatsReportStream {
      std::string name;
    std::string streamId;
    bool hasAudio;
    bool hasCaptions;
    bool hasVideo;
    std::string sessionId;
    double width;
    double height;
    std::string videoType;
    OnRtcStatsReportStreamConnection connection;
    std::string creationTime;
    };

  struct OnRtcStatsReport {
      OnRtcStatsReportStream stream;
    std::string jsonStats;
    };

  struct OnAudioLevelStreamConnection {
      std::string creationTime;
    std::string data;
    std::string connectionId;
    };

  struct OnAudioLevelStream {
      std::string name;
    std::string streamId;
    bool hasAudio;
    bool hasCaptions;
    bool hasVideo;
    std::string sessionId;
    double width;
    double height;
    std::string videoType;
    OnAudioLevelStreamConnection connection;
    std::string creationTime;
    };

  struct OnAudioLevel {
      OnAudioLevelStream stream;
    Float audioLevel;
    };

  struct OnAudioNetworkStatsStreamConnection {
      std::string creationTime;
    std::string data;
    std::string connectionId;
    };

  struct OnAudioNetworkStatsStream {
      std::string name;
    std::string streamId;
    bool hasAudio;
    bool hasCaptions;
    bool hasVideo;
    std::string sessionId;
    double width;
    double height;
    std::string videoType;
    OnAudioNetworkStatsStreamConnection connection;
    std::string creationTime;
    };

  struct OnAudioNetworkStats {
      OnAudioNetworkStatsStream stream;
    std::string jsonStats;
    };

  struct OnCaptionReceivedStreamConnection {
      std::string creationTime;
    std::string data;
    std::string connectionId;
    };

  struct OnCaptionReceivedStream {
      std::string name;
    std::string streamId;
    bool hasAudio;
    bool hasCaptions;
    bool hasVideo;
    std::string sessionId;
    double width;
    double height;
    std::string videoType;
    OnCaptionReceivedStreamConnection connection;
    std::string creationTime;
    };

  struct OnCaptionReceived {
      OnCaptionReceivedStream stream;
    std::string text;
    bool isFinal;
    };

  struct OnVideoDataReceivedStreamConnection {
      std::string creationTime;
    std::string data;
    std::string connectionId;
    };

  struct OnVideoDataReceivedStream {
      std::string name;
    std::string streamId;
    bool hasAudio;
    bool hasCaptions;
    bool hasVideo;
    std::string sessionId;
    double width;
    double height;
    std::string videoType;
    OnVideoDataReceivedStreamConnection connection;
    std::string creationTime;
    };

  struct OnVideoDataReceived {
      OnVideoDataReceivedStream stream;
    };

  struct OnVideoDisabledStreamConnection {
      std::string creationTime;
    std::string data;
    std::string connectionId;
    };

  struct OnVideoDisabledStream {
      std::string name;
    std::string streamId;
    bool hasAudio;
    bool hasCaptions;
    bool hasVideo;
    std::string sessionId;
    double width;
    double height;
    std::string videoType;
    OnVideoDisabledStreamConnection connection;
    std::string creationTime;
    };

  struct OnVideoDisabled {
      OnVideoDisabledStream stream;
    std::string reason;
    };

  struct OnVideoDisableWarningStreamConnection {
      std::string creationTime;
    std::string data;
    std::string connectionId;
    };

  struct OnVideoDisableWarningStream {
      std::string name;
    std::string streamId;
    bool hasAudio;
    bool hasCaptions;
    bool hasVideo;
    std::string sessionId;
    double width;
    double height;
    std::string videoType;
    OnVideoDisableWarningStreamConnection connection;
    std::string creationTime;
    };

  struct OnVideoDisableWarning {
      OnVideoDisableWarningStream stream;
    };

  struct OnVideoDisableWarningLiftedStreamConnection {
      std::string creationTime;
    std::string data;
    std::string connectionId;
    };

  struct OnVideoDisableWarningLiftedStream {
      std::string name;
    std::string streamId;
    bool hasAudio;
    bool hasCaptions;
    bool hasVideo;
    std::string sessionId;
    double width;
    double height;
    std::string videoType;
    OnVideoDisableWarningLiftedStreamConnection connection;
    std::string creationTime;
    };

  struct OnVideoDisableWarningLifted {
      OnVideoDisableWarningLiftedStream stream;
    };

  struct OnVideoEnabledStreamConnection {
      std::string creationTime;
    std::string data;
    std::string connectionId;
    };

  struct OnVideoEnabledStream {
      std::string name;
    std::string streamId;
    bool hasAudio;
    bool hasCaptions;
    bool hasVideo;
    std::string sessionId;
    double width;
    double height;
    std::string videoType;
    OnVideoEnabledStreamConnection connection;
    std::string creationTime;
    };

  struct OnVideoEnabled {
      OnVideoEnabledStream stream;
    std::string reason;
    };

  struct OnVideoNetworkStatsStreamConnection {
      std::string creationTime;
    std::string data;
    std::string connectionId;
    };

  struct OnVideoNetworkStatsStream {
      std::string name;
    std::string streamId;
    bool hasAudio;
    bool hasCaptions;
    bool hasVideo;
    std::string sessionId;
    double width;
    double height;
    std::string videoType;
    OnVideoNetworkStatsStreamConnection connection;
    std::string creationTime;
    };

  struct OnVideoNetworkStats {
      OnVideoNetworkStatsStream stream;
    std::string jsonStats;
    };
  void onSubscriberConnected(OnSubscriberConnected value) const;

  void onSubscriberDisconnected(OnSubscriberDisconnected value) const;

  void onSubscriberError(OnSubscriberError value) const;

  void onRtcStatsReport(OnRtcStatsReport value) const;

  void onAudioLevel(OnAudioLevel value) const;

  void onAudioNetworkStats(OnAudioNetworkStats value) const;

  void onCaptionReceived(OnCaptionReceived value) const;

  void onVideoDataReceived(OnVideoDataReceived value) const;

  void onVideoDisabled(OnVideoDisabled value) const;

  void onVideoDisableWarning(OnVideoDisableWarning value) const;

  void onVideoDisableWarningLifted(OnVideoDisableWarningLifted value) const;

  void onVideoEnabled(OnVideoEnabled value) const;

  void onVideoNetworkStats(OnVideoNetworkStats value) const;
};
} // namespace facebook::react
