/**
 * 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 RNCustomergluSpec symbols
#ifndef RNCustomergluSpec_H
#define RNCustomergluSpec_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 NativeReactNativeCustomergluSpec <RCTBridgeModule, RCTTurboModule>

- (void)addListener:(NSString *)eventType;
- (void)removeListeners:(double)count;
- (void)registerDevice:(NSDictionary *)data
               resolve:(RCTPromiseResolveBlock)resolve
                reject:(RCTPromiseRejectBlock)reject;
- (void)UpdateUserAttributes:(NSDictionary *)userdata;
- (void)dataClear;
- (void)sendData:(NSDictionary *)obj;
- (void)openWallet:(NSDictionary *)obj;
- (void)initCGSDK:(NSString *)obj;
- (void)loadCampaignById:(NSString *)campid
                     obj:(NSDictionary *)obj;
- (void)loadCampaignWithUrl:(NSString *)url
                        obj:(NSDictionary *)obj;
- (void)enableAnalytic:(BOOL)b;
- (void)allowAnonymousRegistration:(BOOL)b;
- (void)gluSDKDebuggingMode:(BOOL)b;
- (void)enableEntryPoints:(BOOL)b;
- (void)setAdPopupFont:(NSString *)value;
- (void)UpdateProfile:(NSDictionary *)obj;
- (void)startSSEOnForeground;
- (void)disconnectSSEOnBackground;
- (void)setSSETimeout:(double)time;
- (void)DisplayCustomerGluNotification;
- (void)DisplayCGNotification:(NSDictionary *)obj
             autoclosewebview:(NSNumber *)autoclosewebview;
- (void)DisplayCGBackgroundNotification:(NSDictionary *)obj
                       autoclosewebview:(NSNumber *)autoclosewebview;
- (void)SetCurrentClassName:(NSString *)clname
                    resolve:(RCTPromiseResolveBlock)resolve
                     reject:(RCTPromiseRejectBlock)reject;
- (void)getBannerHeight:(RCTPromiseResolveBlock)resolve
                 reject:(RCTPromiseRejectBlock)reject;
- (void)addMarginsForPIP:(double)horizontal
                vertical:(double)vertical
                    type:(NSString *)type;
- (void)addDelayForPIP:(double)delay;
- (void)setOpenWalletAsFallback:(BOOL)value;
- (void)isCampaignValid:(NSString *)campaignId
               dataFlag:(NSString *)dataFlag
                resolve:(RCTPromiseResolveBlock)resolve
                 reject:(RCTPromiseRejectBlock)reject;
- (void)getCampaignStatus:(NSString *)campaignId
                 dataFlag:(NSString *)dataFlag
                  resolve:(RCTPromiseResolveBlock)resolve
                   reject:(RCTPromiseRejectBlock)reject;

@end

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


@end

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

NS_ASSUME_NONNULL_END
#endif // RNCustomergluSpec_H
