// ContentsquareInterfaceWrapperBase.h
#import <Foundation/Foundation.h>
#import <React/RCTUIManager.h>
#import <React/RCTBridgeModule.h>

@protocol ContentsquareInterfaceWrapperBase

- (void)resumeTracking;
- (void)stopTracking;
- (void)start;
- (void)optIn;
- (void)optOut;
- (void)handleWithUrl:(NSURL *)url;
- (void)sendWithScreenViewWithName:(NSString *)name cvars:(NSArray *)cvars;
- (void)initComponentsWithParams:(NSDictionary *)params;
- (void)sendDynamicStringVar:(NSString *)key value:(NSString *)value;
- (void)sendDynamicIntVar:(NSString *)key value:(NSInteger)value;
- (void)getUserId:(RCTResponseSenderBlock)callback;
- (void)sendTransactionWithIntCurrency:(NSString *)identifier value:(float)value currency:(NSInteger)currency;
- (void)sendTransactionWithStringCurrency:(NSString *)identifier value:(float)value currency:(NSString *)currency;
- (void)setDefaultMaskingWithIsMasking:(BOOL)isMasking;
- (void)sendUserIdentifier:(NSString *)userIdentifier;
- (void)setOnSessionReplayLinkChange;
- (void)monitorWarn:(NSDictionary *)params;
- (void)monitorError:(NSDictionary *)params;
- (void)injectWebView:(NSNumber *)webViewTag in:(RCTUIManager *)uim;
- (void)removeInjectionInWebView:(NSNumber *)webViewTag in:(RCTUIManager *)uim;

// CSQ
- (void)stop;
- (void)pauseTracking;
- (void)resetIdentity;
- (void)addDynamicStringVar:(NSString *)key value:(NSString *)value;
- (void)addDynamicIntVar:(NSString *)key value:(NSInteger)value;
- (void)identify:(NSString *)identity;
- (void)trackScreenViewWithName:(NSString *)name cvars:(NSArray *)cvars sourceInfo:(NSDictionary *)sourceInfo;
- (void)configureProductAnalyticsWithEnvironmentID:(NSString *)environmentID additionalOptions:(NSDictionary *)productAnalyticsOptions;
- (void)trackTransactionWithIntCurrency:(NSString *)identifier value:(float)value currency:(NSInteger)currency;
- (void)trackTransactionWithStringCurrency:(NSString *)identifier value:(float)value currency:(NSString *)currency;
- (void)trackEventWithName:(NSString *)event properties:(NSDictionary *)properties sourceInfo:(NSDictionary *)sourceInfo;
- (void)registerWebView:(NSNumber *)webViewTag in:(RCTUIManager *)uiManager;
- (void)unregisterWebView:(NSNumber *)webViewTag from:(RCTUIManager *)uiManager;
- (void)setURLMaskingPatterns:(NSArray<NSString *> *)patterns;
- (void)triggerNativeCrash;
- (void)addEventProperties:(NSDictionary *)properties;
- (void)removeEventProperty:(NSString *)key;
- (void)clearEventProperties;
- (void)addUserProperties:(NSDictionary *)properties;
- (void)setOnMetadataChange;

@end
