//
//  ReactNativeSynerise.h
//  react-native-synerise-sdk
//
//  Created by Synerise
//  Copyright © 2021 Synerise. All rights reserved.
//

#import <Foundation/Foundation.h>

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

#import <SyneriseSDK/SyneriseSDK.h>

#import "NSDictionary+ReactNative.h"
#import "NSMutableDictionary+ReactNative.h"

#import "RNSyneriseManager.h"

static NSString * const kRNSyneriseJavaScriptDidLoadNotification = @"kRNSyneriseJavaScriptDidLoadNotification";
static NSString * const kRNSyneriseIsInitializedNotification = @"kRNSyneriseIsInitializedNotification";

static NSString * const kRNSyneriseInitializationSuccessEvent = @"kRNSyneriseInitializationSuccessEvent";
static NSString * const kRNSyneriseInitializationFailureEvent = @"kRNSyneriseInitializationFailureEvent";

static NSString * const kRNSyneriseRegistrationTokenEvent = @"kRNSyneriseRegistrationTokenEvent";
static NSString * const kRNSyneriseRegistrationRequiredEvent = @"kRNSyneriseRegistrationRequiredEvent";
static NSString * const kRNSyneriseNotificationEvent = @"kRNSyneriseNotificationEvent";

static NSString * const kRNSyneriseUrlActionEvent = @"kRNSyneriseUrlActionEvent";
static NSString * const kRNSyneriseDeepLinkActionEvent = @"kRNSyneriseDeepLinkActionEvent";

static NSString * const kRNSyneriseBannerPresentedEvent = @"kRNSyneriseBannerPresentedEvent";
static NSString * const kRNSyneriseBannerHiddenEvent = @"kRNSyneriseBannerHiddenEvent";

static NSString * const kRNSyneriseWalkthroughLoadedEvent = @"kRNSyneriseWalkthroughLoadedEvent";
static NSString * const kRNSyneriseWalkthroughLoadingErrorEvent = @"kRNSyneriseWalkthroughLoadingErrorEvent";
static NSString * const kRNSyneriseWalkthroughPresentedEvent = @"kRNSyneriseWalkthroughPresentedEvent";
static NSString * const kRNSyneriseWalkthroughHiddenEvent = @"kRNSyneriseWalkthroughHiddenEvent";

static NSString * const kRNSyneriseInAppMessagePresentedKey = @"kRNSyneriseInAppMessagePresentedKey";
static NSString * const kRNSyneriseInAppMessageHiddenKey = @"kRNSyneriseInAppMessageHiddenKey";
static NSString * const kRNSyneriseInAppMessageUrlActionKey = @"kRNSyneriseInAppMessageUrlActionKey";
static NSString * const kRNSyneriseInAppMessageDeeplinkActionKey = @"kRNSyneriseInAppMessageDeeplinkActionKey";
static NSString * const kRNSyneriseInAppMessageCustomActionKey = @"kRNSyneriseInAppMessageCustomActionKey";
static NSString * const kRNSyneriseInAppMessageCustomMethodKey = @"kRNSyneriseInAppMessageCustomMethodKey";

static NSString * const kRNSyneriseInlineInAppMessageAvailableKey = @"kRNSyneriseInlineInAppMessageAvailableKey";
static NSString * const kRNSyneriseInlineInAppMessageUrlActionKey = @"kRNSyneriseInlineInAppMessageUrlActionKey";
static NSString * const kRNSyneriseInlineInAppMessageDeeplinkActionKey = @"kRNSyneriseInlineInAppMessageDeeplinkActionKey";
static NSString * const kRNSyneriseInlineInAppMessageCustomActionKey = @"kRNSyneriseInlineInAppMessageCustomActionKey";
static NSString * const kRNSyneriseInlineInAppMessageCustomMethodKey = @"kRNSyneriseInlineInAppMessageCustomMethodKey";

static NSString * const kRNSyneriseClientIsSignedInEvent = @"kRNSyneriseClientIsSignedInEvent";
static NSString * const kRNSyneriseClientIsSignedOutEvent = @"kRNSyneriseClientIsSignedOutEvent";
