/**
 * 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: GenerateModuleObjCpp
 *
 * We create an umbrella header (and corresponding implementation) here since
 * Cxx compilation in BUCK has a limitation: source-code producing genrule()s
 * must have a single output. More files => more genrule()s => slower builds.
 */

#ifndef __cplusplus
#error This file must be compiled as Obj-C++. If you are importing it, you must change your file extension to .mm.
#endif

// Avoid multiple includes of RNMetaAdsSpec symbols
#ifndef RNMetaAdsSpec_H
#define RNMetaAdsSpec_H

#import <Foundation/Foundation.h>
#import <RCTRequired/RCTRequired.h>
#import <RCTTypeSafety/RCTConvertHelpers.h>
#import <RCTTypeSafety/RCTTypedModuleConstants.h>
#import <React/RCTBridgeModule.h>
#import <React/RCTCxxConvert.h>
#import <React/RCTManagedPointer.h>
#import <ReactCommon/RCTTurboModule.h>
#import <optional>
#import <vector>


NS_ASSUME_NONNULL_BEGIN

@protocol NativeAdSettingsSpec <RCTBridgeModule, RCTTurboModule>

- (void)initialize:(RCTPromiseResolveBlock)resolve
            reject:(RCTPromiseRejectBlock)reject;
- (NSNumber *)isInitialized;
- (void)addTestDevice:(NSString *)deviceHash;
- (NSString *)getCurrentDeviceHash;
- (void)clearTestDevices;
- (void)setDataProcessingOptions:(NSArray *)options
                         country:(NSNumber *)country
                           state:(NSNumber *)state;
- (void)setLogLevel:(NSString *)level;
- (void)setAdvertiserIDCollectionEnabled:(BOOL)enabled;
- (void)setAdvertiserTrackingEnabled:(BOOL)enabled;

@end

@interface NativeAdSettingsSpecBase : NSObject {
@protected
facebook::react::EventEmitterCallback _eventEmitterCallback;
}
- (void)setEventEmitterCallback:(EventEmitterCallbackWrapper *)eventEmitterCallbackWrapper;


@end

namespace facebook::react {
  /**
   * ObjC++ class for module 'NativeAdSettings'
   */
  class JSI_EXPORT NativeAdSettingsSpecJSI : public ObjCTurboModule {
  public:
    NativeAdSettingsSpecJSI(const ObjCTurboModule::InitParams &params);
  };
} // namespace facebook::react

@protocol NativeInterstitialAdManagerSpec <RCTBridgeModule, RCTTurboModule>

- (void)loadAd:(NSString *)placementId
       resolve:(RCTPromiseResolveBlock)resolve
        reject:(RCTPromiseRejectBlock)reject;
- (void)showAd:(NSString *)placementId
       resolve:(RCTPromiseResolveBlock)resolve
        reject:(RCTPromiseRejectBlock)reject;

@end

@interface NativeInterstitialAdManagerSpecBase : NSObject {
@protected
facebook::react::EventEmitterCallback _eventEmitterCallback;
}
- (void)setEventEmitterCallback:(EventEmitterCallbackWrapper *)eventEmitterCallbackWrapper;

- (void)emitOnInterstitialDismissed;
@end

namespace facebook::react {
  /**
   * ObjC++ class for module 'NativeInterstitialAdManager'
   */
  class JSI_EXPORT NativeInterstitialAdManagerSpecJSI : public ObjCTurboModule {
  public:
    NativeInterstitialAdManagerSpecJSI(const ObjCTurboModule::InitParams &params);
  };
} // namespace facebook::react

@protocol NativeRewardedAdManagerSpec <RCTBridgeModule, RCTTurboModule>

- (void)loadAd:(NSString *)placementId
       resolve:(RCTPromiseResolveBlock)resolve
        reject:(RCTPromiseRejectBlock)reject;
- (void)showAd:(NSString *)placementId
       resolve:(RCTPromiseResolveBlock)resolve
        reject:(RCTPromiseRejectBlock)reject;

@end

@interface NativeRewardedAdManagerSpecBase : NSObject {
@protected
facebook::react::EventEmitterCallback _eventEmitterCallback;
}
- (void)setEventEmitterCallback:(EventEmitterCallbackWrapper *)eventEmitterCallbackWrapper;

- (void)emitOnRewardedVideoCompleted;
@end

namespace facebook::react {
  /**
   * ObjC++ class for module 'NativeRewardedAdManager'
   */
  class JSI_EXPORT NativeRewardedAdManagerSpecJSI : public ObjCTurboModule {
  public:
    NativeRewardedAdManagerSpecJSI(const ObjCTurboModule::InitParams &params);
  };
} // namespace facebook::react



NS_ASSUME_NONNULL_END
#endif // RNMetaAdsSpec_H
