//
//  HanselTrackerRn.h
//  AwesomeProject
//
//  Created by Rajeev Rajeshuni on 22/10/19.
//  Copyright © 2019 Facebook. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <React/RCTEventEmitter.h>
#import <React/RCTBridgeModule.h>
#import "HanselRnUtils.h"
#import <SmartechNudges/HanselTracker.h>
#import "HanselRnEventsListener.h"
#import "HanselRnActionListener.h"
#import "HanselRnSyncStateListener.h"

@interface HanselTrackerRn : NSObject

// Only methods that are RCT_EXPORT_METHOD in SmartechNudges.mm
- (void)getHanselData:(NSString* _Nonnull)eventName andVendor:(NSString* _Nonnull)vendor withProperties:(NSDictionary*_Nullable)properties callback:(RCTResponseSenderBlock)callback;
- (void)isUsedInMap:(NSString* _Nonnull)event andVendor:(NSString* _Nonnull)vendor withProperties:(NSDictionary* _Nullable)properties callback:(RCTResponseSenderBlock)callback;
- (void)logEvent:(NSString* _Nonnull)eventName vendor:(NSString* _Nonnull)vendor hanselProperties:(NSDictionary* _Nullable)hanselProperties callback:(RCTResponseSenderBlock)callback;
- (void)registerHanselTrackerListener;
- (void)registerHanselActionListenerWithActionName:(NSString*)actionName;
- (void)registerHanselDeeplinkListener;
- (void)deRegisterListener;
- (void)removeHanselActionListenerForAction:(NSString*)actionName;

@end

