#import <React/RCTBridgeModule.h>
#import <React/RCTEventEmitter.h>

@interface RCT_EXTERN_MODULE (FraudNativeModule, RCTEventEmitter)

RCT_EXTERN_METHOD(initDeviceIntelligence:(NSString *)clientId
                  env:(NSString *)env
                  enableSmartInsightFetch:(BOOL)enableSmartInsightFetch)

RCT_EXTERN_METHOD(asyncSubmitDeviceIntelligence:(RCTPromiseResolveBlock)resolve
                  withRejecter:(RCTPromiseRejectBlock)reject)

RCT_EXTERN_METHOD(submitDeviceIntelligence : (RCTPromiseResolveBlock)
                      resolve withRejecter : (RCTPromiseRejectBlock)reject)

RCT_EXTERN_METHOD(setUserId:)

RCT_EXTERN_METHOD(setFlow:)

RCT_EXTERN_METHOD(getUserId : (RCTPromiseResolveBlock)
                      resolve withRejecter : (RCTPromiseRejectBlock)reject)

RCT_EXTERN_METHOD(isInitialized : (RCTPromiseResolveBlock)
                      resolve withRejecter : (RCTPromiseRejectBlock)reject)

RCT_EXTERN_METHOD(setMetaInfo : (NSDictionary *)json)

+ (BOOL)requiresMainQueueSetup {
  return NO;
}

@end
