text: // Generated by Apple Swift version 5.4 (swiftlang-1205.0.26.9 clang-1205.0.19.55)
  #ifndef IADVIZECONVERSATIONSDK_SWIFT_H
  #define IADVIZECONVERSATIONSDK_SWIFT_H
  #pragma clang diagnostic push
  #pragma clang diagnostic ignored "-Wgcc-compat"
  
  #if !defined(__has_include)
  # define __has_include(x) 0
  #endif
  #if !defined(__has_attribute)
  # define __has_attribute(x) 0
  #endif
  #if !defined(__has_feature)
  # define __has_feature(x) 0
  #endif
  #if !defined(__has_warning)
  # define __has_warning(x) 0
  #endif
  
  #if __has_include(<swift/objc-prologue.h>)
  # include <swift/objc-prologue.h>
  #endif
  
  #pragma clang diagnostic ignored "-Wauto-import"
  #include <Foundation/Foundation.h>
  #include <stdint.h>
  #include <stddef.h>
  #include <stdbool.h>
  
  #if !defined(SWIFT_TYPEDEFS)
  # define SWIFT_TYPEDEFS 1
  # if __has_include(<uchar.h>)
  #  include <uchar.h>
  # elif !defined(__cplusplus)
  typedef uint_least16_t char16_t;
  typedef uint_least32_t char32_t;
  # endif
  typedef float swift_float2  __attribute__((__ext_vector_type__(2)));
  typedef float swift_float3  __attribute__((__ext_vector_type__(3)));
  typedef float swift_float4  __attribute__((__ext_vector_type__(4)));
  typedef double swift_double2  __attribute__((__ext_vector_type__(2)));
  typedef double swift_double3  __attribute__((__ext_vector_type__(3)));
  typedef double swift_double4  __attribute__((__ext_vector_type__(4)));
  typedef int swift_int2  __attribute__((__ext_vector_type__(2)));
  typedef int swift_int3  __attribute__((__ext_vector_type__(3)));
  typedef int swift_int4  __attribute__((__ext_vector_type__(4)));
  typedef unsigned int swift_uint2  __attribute__((__ext_vector_type__(2)));
  typedef unsigned int swift_uint3  __attribute__((__ext_vector_type__(3)));
  typedef unsigned int swift_uint4  __attribute__((__ext_vector_type__(4)));
  #endif
  
  #if !defined(SWIFT_PASTE)
  # define SWIFT_PASTE_HELPER(x, y) x##y
  # define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y)
  #endif
  #if !defined(SWIFT_METATYPE)
  # define SWIFT_METATYPE(X) Class
  #endif
  #if !defined(SWIFT_CLASS_PROPERTY)
  # if __has_feature(objc_class_property)
  #  define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__
  # else
  #  define SWIFT_CLASS_PROPERTY(...)
  # endif
  #endif
  
  #if __has_attribute(objc_runtime_name)
  # define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X)))
  #else
  # define SWIFT_RUNTIME_NAME(X)
  #endif
  #if __has_attribute(swift_name)
  # define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X)))
  #else
  # define SWIFT_COMPILE_NAME(X)
  #endif
  #if __has_attribute(objc_method_family)
  # define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X)))
  #else
  # define SWIFT_METHOD_FAMILY(X)
  #endif
  #if __has_attribute(noescape)
  # define SWIFT_NOESCAPE __attribute__((noescape))
  #else
  # define SWIFT_NOESCAPE
  #endif
  #if __has_attribute(ns_consumed)
  # define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed))
  #else
  # define SWIFT_RELEASES_ARGUMENT
  #endif
  #if __has_attribute(warn_unused_result)
  # define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
  #else
  # define SWIFT_WARN_UNUSED_RESULT
  #endif
  #if __has_attribute(noreturn)
  # define SWIFT_NORETURN __attribute__((noreturn))
  #else
  # define SWIFT_NORETURN
  #endif
  #if !defined(SWIFT_CLASS_EXTRA)
  # define SWIFT_CLASS_EXTRA
  #endif
  #if !defined(SWIFT_PROTOCOL_EXTRA)
  # define SWIFT_PROTOCOL_EXTRA
  #endif
  #if !defined(SWIFT_ENUM_EXTRA)
  # define SWIFT_ENUM_EXTRA
  #endif
  #if !defined(SWIFT_CLASS)
  # if __has_attribute(objc_subclassing_restricted)
  #  define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA
  #  define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
  # else
  #  define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
  #  define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
  # endif
  #endif
  #if !defined(SWIFT_RESILIENT_CLASS)
  # if __has_attribute(objc_class_stub)
  #  define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub))
  #  define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME)
  # else
  #  define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME)
  #  define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME)
  # endif
  #endif
  
  #if !defined(SWIFT_PROTOCOL)
  # define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
  # define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
  #endif
  
  #if !defined(SWIFT_EXTENSION)
  # define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__)
  #endif
  
  #if !defined(OBJC_DESIGNATED_INITIALIZER)
  # if __has_attribute(objc_designated_initializer)
  #  define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer))
  # else
  #  define OBJC_DESIGNATED_INITIALIZER
  # endif
  #endif
  #if !defined(SWIFT_ENUM_ATTR)
  # if defined(__has_attribute) && __has_attribute(enum_extensibility)
  #  define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility)))
  # else
  #  define SWIFT_ENUM_ATTR(_extensibility)
  # endif
  #endif
  #if !defined(SWIFT_ENUM)
  # define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type
  # if __has_feature(generalized_swift_name)
  #  define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type
  # else
  #  define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility)
  # endif
  #endif
  #if !defined(SWIFT_UNAVAILABLE)
  # define SWIFT_UNAVAILABLE __attribute__((unavailable))
  #endif
  #if !defined(SWIFT_UNAVAILABLE_MSG)
  # define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg)))
  #endif
  #if !defined(SWIFT_AVAILABILITY)
  # define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__)))
  #endif
  #if !defined(SWIFT_WEAK_IMPORT)
  # define SWIFT_WEAK_IMPORT __attribute__((weak_import))
  #endif
  #if !defined(SWIFT_DEPRECATED)
  # define SWIFT_DEPRECATED __attribute__((deprecated))
  #endif
  #if !defined(SWIFT_DEPRECATED_MSG)
  # define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__)))
  #endif
  #if __has_feature(attribute_diagnose_if_objc)
  # define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning")))
  #else
  # define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg)
  #endif
  #if !defined(IBSegueAction)
  # define IBSegueAction
  #endif
  #if __has_feature(modules)
  #if __has_warning("-Watimport-in-framework-header")
  #pragma clang diagnostic ignored "-Watimport-in-framework-header"
  #endif
  @import Foundation;
  @import ObjectiveC;
  @import UIKit;
  #endif
  
  #pragma clang diagnostic ignored "-Wproperty-attribute-mismatch"
  #pragma clang diagnostic ignored "-Wduplicate-method-arg"
  #if __has_warning("-Wpragma-clang-attribute")
  # pragma clang diagnostic ignored "-Wpragma-clang-attribute"
  #endif
  #pragma clang diagnostic ignored "-Wunknown-pragmas"
  #pragma clang diagnostic ignored "-Wnullability"
  
  #if __has_attribute(external_source_symbol)
  # pragma push_macro("any")
  # undef any
  # pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="IAdvizeConversationSDK",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol))
  # pragma pop_macro("any")
  #endif
  
  @class NSNumber;
  
  SWIFT_CLASS("_TtC22IAdvizeConversationSDK17ChatboxController")
  @interface ChatboxController : NSObject
  /// When the active targeting rule is available, a chat button is displayed to invite the user to chat.
  /// You can decide to let the SDK manage the chat button visibility or control it yourself using this variable.
  /// If useDefaultChatButton = true the SDK will use the iAdvize default chat button, manage its visibility, and open the chatbox when user presses it.
  @property (nonatomic) BOOL useDefaultChatButton;
  /// Set the chat button (the default one) position. Use this method if you use the iAdvize
  /// default chat button by setting the <code>useDefaultChatButton</code> to <code>true</code>.
  /// We use autolayout constraints to place the chat button in the designated view (the main
  /// window by default) and to move it.
  /// The default chat button is aligned to the bottom-left of the screen with a default
  /// margin to (left: 10, bottom: 10). Increasing the bottom margin value will move the chat
  /// button up and increasing the left margin value will move the chat button left.
  /// \code
  ///             Container view (default = main window)
  ///                +----------------------------------+
  ///                |                                  |
  ///                |                                  |
  ///                |                                  |
  ///                |                                  |
  ///                |                                  |
  ///                |                                  |
  ///                |                                  |
  ///                |                                  |
  ///                |                                  |
  ///                |                                  |
  ///                |                                  |
  ///                |                                  |
  ///                |                                  |
  ///                |                                  |
  ///                |             chatButtonView       |
  ///       leftMargin = 10   +----+                    |
  ///                <------> |    |                    |
  ///                |        |    |                    |
  ///                |        +--^-+                    |
  ///                |            |                     |
  ///                |            | bottomMargin = 10   |
  ///                +------------v---------------------+
  ///
  /// \endcodePlease visit https://github.com/iadvize/iadvize-ios-sdk for further information.
  /// \param leftMargin Left margin between the left edge of the chat button view and the trailing
  /// edge of its container view (default = main window). Increase it to move the button left.
  ///
  /// \param bottomMargin Bottom margin between the bottom edge of the chat button view and the
  /// bottom edge of its container view (default = main window). Increase it to move the button up.
  ///
  - (void)setChatButtonPositionWithLeftMargin:(double)leftMargin bottomMargin:(double)bottomMargin;
  - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
  @end
  
  @class ChatboxConfiguration;
  
  @interface ChatboxController (SWIFT_EXTENSION(IAdvizeConversationSDK))
  - (void)setupChatboxWithConfiguration:(ChatboxConfiguration * _Nonnull)configuration;
  @end
  
  @protocol ConversationControllerDelegate;
  @class UIViewController;
  
  SWIFT_CLASS("_TtC22IAdvizeConversationSDK22ConversationController")
  @interface ConversationController : NSObject
  /// Set a delegate if you want to be informed when new messages are received or if the unread message
  /// count counter changes.
  /// Please visit https://github.com/iadvize/iadvize-ios-sdk for further information.
  @property (nonatomic, weak) id <ConversationControllerDelegate> _Nullable delegate;
  /// A boolean to track if there is an ongoing conversation.
  /// This boolean is set to <code>true</code> each time the user starts a new conversation and set to <code>false</code> when the operator closes the ongoing conversation.
  @property (nonatomic) BOOL hasOngoingConversation;
  /// Display the Conversation View as a modal (will appear on top of your current view hierarchy).
  /// By default, if the Chat Button is displayed and the user tap on it, we will show the Conversation
  /// View modal automatically.
  /// You can use this method to display manually the Conversation View to the user (if you don’t
  /// want to use the Chat Button behavior and use, for example, a custom element in a view to allow
  /// the user to enter in the Conversation View).
  /// By default, the Conversation View will be presented by the key window root view controller. If you specify a
  /// <code>presentingViewController</code>, it will be used to present the Conversation View.
  /// Please visit https://github.com/iadvize/iadvize-ios-sdk for further information.
  - (void)presentConversationViewModalWithAnimated:(BOOL)animated presentingViewController:(UIViewController * _Nullable)presentingViewController completion:(void (^ _Nullable)(void))completion;
  /// Dismiss the Conversation View modal.
  /// By default, the user can dismiss the Conversation View modal by touching the “Reduce” button
  /// in the navigation bar.
  /// You can use this method to dismiss manually the Conversation View (if you have another important
  /// modal of your app to present for example).
  /// Please visit https://github.com/iadvize/iadvize-ios-sdk for further information.
  /// \param animated <code>true</code> if you want dismiss the Conversation View with an animation.
  ///
  /// \param completion called when the Conversation View is fully dismissed.
  ///
  - (void)dismissConversationViewModalWithAnimated:(BOOL)animated completion:(void (^ _Nullable)(void))completion;
  ///
  /// returns:
  /// <code>true</code> if the Conversation View is actually presented.
  - (BOOL)isConversationViewPresented SWIFT_WARN_UNUSED_RESULT;
  - (nonnull instancetype)init SWIFT_UNAVAILABLE;
  + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
  @end
  
  
  
  
  SWIFT_PROTOCOL("_TtP22IAdvizeConversationSDK27TargetingControllerDelegate_")
  @protocol TargetingControllerDelegate
  - (void)activeTargetingRuleAvailabilityDidUpdateWithIsActiveTargetingRuleAvailable:(BOOL)isActiveTargetingRuleAvailable;
  @end
  
  
  @interface ConversationController (SWIFT_EXTENSION(IAdvizeConversationSDK)) <TargetingControllerDelegate>
  - (void)activeTargetingRuleAvailabilityDidUpdateWithIsActiveTargetingRuleAvailable:(BOOL)isActiveTargetingRuleAvailable;
  @end
  
  
  
  
  @class NSString;
  @class NSURL;
  
  /// Delegate methods to be informed of the SDK activity.
  SWIFT_PROTOCOL("_TtP22IAdvizeConversationSDK30ConversationControllerDelegate_")
  @protocol ConversationControllerDelegate
  @optional
  /// Called on the delegate to inform it that a new incoming message has been received.
  /// Text content of the message is available if you want to display it in your custom
  /// Chat Button view for example.
  /// Please visit https://github.com/iadvize/iadvize-ios-sdk for further information.
  /// \param content Text content of the message.
  ///
  - (void)didReceiveNewMessageWithContent:(NSString * _Nonnull)content;
  @required
  /// Called on the delegate to inform it each time a visitor is entering in a new or existing ongoing conversation.
  /// Please visit https://github.com/iadvize/iadvize-ios-sdk for further information.
  - (void)ongoingConversationStatusDidChangeWithHasOngoingConversation:(BOOL)hasOngoingConversation;
  @optional
  /// Called on the delegate when the user has tapped on a link to ask whether the URL should be opened.
  /// Implementation of this method is optional. By default, the iAdvize SDK opens the URL in a
  /// <code>SFSafariViewController</code>.
  /// \param controller The object managing the conversation.
  ///
  /// \param url The URL to be processed.
  ///
  ///
  /// returns:
  /// <code>true</code> if the URL should be opened; <code>false</code> if you want to handle the URL yourself.
  - (BOOL)conversationController:(ConversationController * _Nonnull)controller shouldOpen:(NSURL * _Nonnull)url SWIFT_WARN_UNUSED_RESULT;
  @end
  
  @class UIAlertAction;
  @class NSBundle;
  @class NSCoder;
  
  /// UIAlertController subclass applying app custom colors to action text titles.
  /// Actions with <code>default</code> or <code>cancel</code> style will use <code>blueLink</code> color.
  /// Actions with <code>destructive</code> style will use <code>redError</code> color.
  SWIFT_CLASS("_TtC22IAdvizeConversationSDK21CustomAlertController")
  @interface CustomAlertController : UIAlertController
  - (void)addAction:(UIAlertAction * _Nonnull)action;
  - (nonnull instancetype)initWithNibName:(NSString * _Nullable)nibNameOrNil bundle:(NSBundle * _Nullable)nibBundleOrNil OBJC_DESIGNATED_INITIALIZER;
  - (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)coder OBJC_DESIGNATED_INITIALIZER;
  @end
  
  
  
  
  SWIFT_PROTOCOL("_TtP22IAdvizeConversationSDK12GDPRDelegate_")
  @protocol GDPRDelegate
  /// Called when the user tap on ‘More information’ in the GDPR message.
  - (void)didTapMoreInformation;
  @end
  
  
  @protocol JWTTokenDelegate;
  @class TargetingController;
  @class NotificationController;
  @class TransactionController;
  
  /// Manage all the iAdvize Conversation SDK setup and initialization.
  SWIFT_CLASS("_TtC22IAdvizeConversationSDK10IAdvizeSDK")
  @interface IAdvizeSDK : NSObject
  /// Shared instance used when you want to setup or initialize the iAdvize Conversation SDK.
  SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) IAdvizeSDK * _Nonnull shared;)
  + (IAdvizeSDK * _Nonnull)shared SWIFT_WARN_UNUSED_RESULT;
  /// JWT Token delegate to inform the integrator that his JWT token is expired.
  @property (nonatomic, weak) id <JWTTokenDelegate> _Nullable jwtTokenDelegate;
  @property (nonatomic, readonly, strong) TargetingController * _Nonnull targetingController;
  @property (nonatomic, readonly, strong) ConversationController * _Nonnull conversationController;
  @property (nonatomic, readonly, strong) NotificationController * _Nonnull notificationController;
  @property (nonatomic, readonly, strong) TransactionController * _Nonnull transactionController;
  @property (nonatomic, readonly, strong) ChatboxController * _Nonnull chatboxController;
  /// Logout the user from the SDK. This hides the chat button & disables push notifications.
  /// You will need to call activate again if the user needs to start a new conversation.
  - (void)logout;
  - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
  @end
  
  
  
  
  
  enum LoggerLogLevel : NSInteger;
  @class AuthenticationOption;
  @class GDPROption;
  
  @interface IAdvizeSDK (SWIFT_EXTENSION(IAdvizeConversationSDK))
  /// Get the log level of the iAdvize Conversation SDK console logger.
  /// By default, the iAdvize Conversation SDK will log only the <code>warning</code> and the <code>error</code> message
  /// in the console. You can change this value to have more feedbacks on the iAdvize Conversation
  /// SDK activity.
  - (enum LoggerLogLevel)getLogLevel SWIFT_WARN_UNUSED_RESULT;
  /// Set the log level of the iAdvize Conversation SDK console logger.
  /// By default, the iAdvize Conversation SDK will log only the <code>warning</code> and the <code>error</code> message
  /// in the console. You can change this value to have more feedbacks on the iAdvize Conversation
  /// SDK activity.
  - (void)setLogLevel:(enum LoggerLogLevel)logLevel;
  /// Activate the iAdvize Conversation SDK by registering the device (push token) and the user
  /// information (visitor identifier and extra information provided).
  /// Once this call succeeded, the iAdvize Conversation SDK is activated.
  /// IAdvizeConversationManager object can be used to display the Chat Button to the user
  /// and the user can start a conversation.
  /// \param jwtOption Object which let you specify either a JWT secret key or an already
  /// signed JWT token regarding the “Security Model” you choose. Options are described below:
  /// <ul>
  ///   <li>
  ///     JWTOption.secret: A unique Secret Key that has been generated for your app
  ///     (for both iOS and Android) on the iAdvize Administration Panel and which has to be
  ///     provided if you use the In-App Security model only.
  ///     You can find this JWT Secret Key in the listing of your apps in the iAdvize
  ///     Administration Panel.
  ///     We will use this JWT Secret Key to sign locally a JWT token to ensure the integrity of the data
  ///     sent between the iAdvize Conversation SDK embeded into your app and our servers. For a stronger
  ///     security model, please see the “Server Side Security Model” in the documentation:
  ///     https://github.com/iadvize/iadvize-ios-sdk
  ///   </li>
  ///   <li>
  ///     JWTOption.token: If you use the Server-Side security model, you can directly provide
  ///     a JWT token that you created and signed on your server.
  ///   </li>
  /// </ul>
  ///
  /// \param gdprOption By default when you activate the SDK, the GDPR will be disabled.
  /// You can activate the GDPR feature by passing <code>[[GDPROption alloc] initWithGdprEnabledOption:...]</code>
  /// and provide a mandatory Legal Information URL link or a delegate to manage your own action on the tap on
  /// <code>More information</code> button.
  ///
  /// \param ruleId A targeting rule allows to target visitors proactively or reactively, based on
  /// their browsing behaviour, their profile or their business criterias (e.g. basket amount, scoring, etc).
  /// You can find this id in the details of a targeting rule in the iAdvize
  /// Administration Panel.
  ///
  /// \param completion Completion handler called when the activation process is done. You can check
  /// the <code>success</code> value to know if the SDK has been successfully activated. You also have to check
  /// the <code>isEnabled</code> flag which indicates you if the SDK is currently enabled or disabled by the SDK
  /// Administrator.
  ///
  - (void)activateWithProjectId:(NSInteger)projectId authenticationOption:(AuthenticationOption * _Nonnull)authenticationOption gdprOption:(GDPROption * _Nonnull)gdprOption completion:(void (^ _Nullable)(BOOL))completion;
  @end
  
  
  
  SWIFT_PROTOCOL("_TtP22IAdvizeConversationSDK16JWTTokenDelegate_")
  @protocol JWTTokenDelegate
  /// Called when the JWT token is expired on server-side configuration.
  - (void)jwtTokenDidExpired;
  @end
  
  
  SWIFT_CLASS("_TtC22IAdvizeConversationSDK22NotificationController")
  @interface NotificationController : NSObject
  /// Enable push notifications for the current user on this device.
  /// This method has an effect only if the push notifications were disabled before by
  /// calling IAdvizeSDK.shared.notificationController.disablePushNotifications().
  /// The user will be able to receive again push notifications from new incoming messages.
  /// Please visit https://github.com/iadvize/iadvize-ios-sdk for further information.
  - (void)enablePushNotificationsWithCompletion:(void (^ _Nullable)(BOOL))completion;
  /// Disable push notifications for the current user on this device.
  /// This method has an effect only if the push notifications were disabled before by
  /// calling IAdvizeSDK.shared.notificationController.disablePushNotifications().
  /// The user will not be able to receive push notifications from new incoming messages anymore.
  /// It will not hide or disable the Chat Button or the Conversation View.
  /// Please visit https://github.com/iadvize/iadvize-ios-sdk for further information.
  - (void)disablePushNotificationsWithCompletion:(void (^ _Nullable)(BOOL))completion;
  /// Analyse the notification “user information” (<code>userInfo</code>) to check if it’s a push notification
  /// coming from the iAdvize Conversation SDK. If yes it returns <code>true</code>, otherwise <code>false</code>.
  /// Please visit https://github.com/iadvize/iadvize-ios-sdk for further information.
  /// \param userInfo <code>userInfo</code> dictionary which are provided when the app
  /// receives a push notification.
  ///
  ///
  /// returns:
  /// <code>true</code> if it’s a notification coming from the iAdvize Conversation SDK, <code>false</code>
  /// otherwise.
  - (BOOL)isIAdvizePushNotificationWith:(NSDictionary * _Nonnull)userInfo SWIFT_WARN_UNUSED_RESULT;
  - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
  @end
  
  enum GraphQLApplicationMode : NSInteger;
  
  @interface NotificationController (SWIFT_EXTENSION(IAdvizeConversationSDK))
  - (void)registerPushToken:(NSString * _Nonnull)pushToken applicationMode:(enum GraphQLApplicationMode)applicationMode;
  @end
  
  
  /// Defines the level of the logged message.
  typedef SWIFT_ENUM_NAMED(NSInteger, LoggerLogLevel, "ObjCLoggerLogLevel", open) {
    LoggerLogLevelVerbose = 0,
    LoggerLogLevelInfo = 1,
    LoggerLogLevelWarning = 2,
    LoggerLogLevelError = 3,
    LoggerLogLevelSuccess = 4,
  };
  
  
  /// Object which let you specify either a JWT secret key or an already signed JWT token regarding the
  /// “Security Model” you choose. Check the <code>activate()</code> method for further information.
  /// <ul>
  ///   <li>
  ///     secret: A unique Secret Key that has been generated for your app
  ///     (for both iOS and Android) on the iAdvize Administration Panel and which has to be
  ///     provided if you use the In-App Security model only.
  ///   </li>
  ///   <li>
  ///     token: A JWT Token that should have been signed on your server and has to be provided
  ///     if you use the Server-Side security model.
  ///   </li>
  /// </ul>
  SWIFT_CLASS_NAMED("ObjcAuthenticationOption")
  @interface AuthenticationOption : NSObject
  - (void)initWithAnonymous SWIFT_METHOD_FAMILY(none);
  - (nonnull instancetype)initWithSimple:(NSString * _Nonnull)userId OBJC_DESIGNATED_INITIALIZER;
  - (nonnull instancetype)init SWIFT_UNAVAILABLE;
  + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
  @end
  
  @class UIColor;
  @class UIFont;
  @class IncomingMessageAvatar;
  
  /// Used to customise the conversation view. Instantiate a default configuration:
  /// <code>ChatboxConfiguration* configuration = [[ChatboxConfiguration alloc] init];</code>
  /// and override the properties you want:
  /// <code>configuration.mainColor = [UIColor whiteColor];</code>
  SWIFT_CLASS_NAMED("ObjcChatboxConfiguration")
  @interface ChatboxConfiguration : NSObject
  - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
  /// Main color of the Conversation View.
  /// The main color will be used, in the Chat Button, for:
  /// <ul>
  ///   <li>
  ///     The color of the default Chat Button (if not overrided)
  ///   </li>
  /// </ul>
  /// in the Conversation View, for:
  /// <ul>
  ///   <li>
  ///     The color of the outgoing message bubble
  ///   </li>
  ///   <li>
  ///     The color of the send button in the message composition bar
  ///   </li>
  ///   <li>
  ///     The color of the links in the incoming messages
  ///   </li>
  /// </ul>
  /// Please visit https://github.com/iadvize/iadvize-ios-sdk for further information.
  @property (nonatomic, strong) UIColor * _Nonnull mainColor;
  /// Content of the first automatic message that invites your user to start asking a question.
  /// Should be localized.
  /// By default, this property is <code>nil</code> and no automatic message will be displayed in the Conversation View.
  /// Please visit https://github.com/iadvize/iadvize-ios-sdk for further information.
  @property (nonatomic, copy) NSString * _Nullable automaticMessage;
  /// Content of the first GDPR message which invites your user to accept or decline the GDPR consent.
  /// Should be localized.
  /// By default, we will use a default GDPR consent message (if the GDPR feature is activated).
  /// Please visit https://github.com/iadvize/iadvize-ios-sdk for further information.
  @property (nonatomic, copy) NSString * _Nullable gdprMessage;
  /// Font that will be used to display text in all UI elements of the iAdvize Conversation SDK.
  /// We will use the font with the same name but adapt the size according to the element in which
  /// the font is used.
  /// By default, we will use the system font provided by iOS.
  /// Please visit https://github.com/iadvize/iadvize-ios-sdk for further information.
  @property (nonatomic, strong) UIFont * _Nullable font;
  /// Background color of the Navigation Bar of the Conversation View.
  /// By setting this property, you will update the background color of the Navigation Bar so the
  /// Conversation view will fit your navigation experience.
  /// By default, we will use a white color.
  /// Please visit https://github.com/iadvize/iadvize-ios-sdk for further information.
  @property (nonatomic, strong) UIColor * _Nonnull navigationBarBackgroundColor;
  /// Color of the elements which are contained in the Navigation Bar.
  /// By setting this property, you will update the color of all the elements which are in the
  /// Navigation Bar of the Conversation View: buttons and labels.
  /// By default, we will use a black color.
  /// Please visit https://github.com/iadvize/iadvize-ios-sdk for further information.
  @property (nonatomic, strong) UIColor * _Nonnull navigationBarMainColor;
  /// Localized title of the Conversation Navigation Bar.
  /// By setting this property, you will update the title in the Navigation Bar of the Conversation
  /// view.
  /// By default, we will use the “Conversation” string.
  @property (nonatomic, copy) NSString * _Nullable navigationBarTitle;
  /// Incoming message (chat operator message) avatar.
  /// By setting this property, you will update the avatar displayed for the incoming messages. You can set an Url or a local
  /// image.
  /// Please visit https://github.com/iadvize/iadvize-ios-sdk for further information.
  @property (nonatomic, strong) IncomingMessageAvatar * _Nullable incomingMessageAvatar;
  /// Presentation style of the Conversation view.
  /// By setting this property, you will update the way the Conversation view will be presented.
  /// Please visit https://github.com/iadvize/iadvize-ios-sdk for further information.
  @property (nonatomic) UIModalPresentationStyle presentationStyle;
  /// If specified, this view controller will be used to present the Conversation View, when the chat button is tapped.
  /// Please visit https://github.com/iadvize/iadvize-ios-sdk for further information.
  @property (nonatomic, strong) UIViewController * _Nullable presentingViewController;
  @end
  
  
  SWIFT_CLASS_NAMED("ObjcGDPREnabledOption")
  @interface GDPREnabledOption : NSObject
  - (nonnull instancetype)initWithLegalInformationURL:(NSURL * _Nonnull)legalInformationURL OBJC_DESIGNATED_INITIALIZER;
  - (nonnull instancetype)initWithDelegate:(id <GDPRDelegate> _Nonnull)delegate OBJC_DESIGNATED_INITIALIZER;
  - (nonnull instancetype)init SWIFT_UNAVAILABLE;
  + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
  @end
  
  
  /// Object which indicates if the GDPR should be enabled or not.
  /// <ul>
  ///   <li>
  ///     enabled: GDPR should be enabled. You will have to provide a mandatory option with url or delegate.
  ///   </li>
  ///   <li>
  ///     disabled: GDPR should be disabled.
  ///   </li>
  /// </ul>
  SWIFT_CLASS_NAMED("ObjcGDPROption")
  @interface GDPROption : NSObject
  - (nonnull instancetype)initWithGdprEnabledOption:(GDPREnabledOption * _Nonnull)gdprEnabledOption OBJC_DESIGNATED_INITIALIZER;
  + (GDPROption * _Nonnull)disabled SWIFT_WARN_UNUSED_RESULT;
  - (nonnull instancetype)init SWIFT_UNAVAILABLE;
  + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
  @end
  
  /// An enumeration representing the mode of the push token. It is only used for iOS
  /// to handle Prod/Dev. Android can use both without any difference.
  typedef SWIFT_ENUM_NAMED(NSInteger, GraphQLApplicationMode, "ObjcGraphQLApplicationMode", open) {
    GraphQLApplicationModeDev = 0,
    GraphQLApplicationModeProd = 1,
    GraphQLApplicationMode__unknown = 2,
  };
  
  /// ISO4217 currency code.
  typedef SWIFT_ENUM_NAMED(NSInteger, GraphQLCurrency, "ObjcGraphQLCurrency", open) {
  /// Andorran Peseta (ADP ADP)
    GraphQLCurrencyAdp = 0,
  /// United Arab Emirates Dirham (AED AED)
    GraphQLCurrencyAed = 1,
  /// Afghan Afghani (1927-2002) (AFA AFA)
    GraphQLCurrencyAfa = 2,
  /// Afghan Afghani (AFN AFN)
    GraphQLCurrencyAfn = 3,
  /// Albanian Lek (ALL ALL)
    GraphQLCurrencyAll = 4,
  /// Armenian Dram (AMD AMD)
    GraphQLCurrencyAmd = 5,
  /// Netherlands Antillean Guilder (ANG ANG)
    GraphQLCurrencyAng = 6,
  /// Angolan Kwanza (AOA AOA)
    GraphQLCurrencyAoa = 7,
  /// Argentine Peso (ARS ARS)
    GraphQLCurrencyArs = 8,
  /// Austrian Schilling (ATS ATS)
    GraphQLCurrencyAts = 9,
  /// Australian Dollar (AUD AUD)
    GraphQLCurrencyAud = 10,
  /// Aruban Florin (AWG AWG)
    GraphQLCurrencyAwg = 11,
  /// AYM (AYM AYM)
    GraphQLCurrencyAym = 12,
  /// Azerbaijani Manat (1993-2006) (AZM AZM)
    GraphQLCurrencyAzm = 13,
  /// Azerbaijan Manat (AZN AZN)
    GraphQLCurrencyAzn = 14,
  /// Bosnia-Herzegovina Convertible Mark (BAM BAM)
    GraphQLCurrencyBam = 15,
  /// Barbadian Dollar (BBD BBD)
    GraphQLCurrencyBbd = 16,
  /// Bangladeshi Taka (BDT BDT)
    GraphQLCurrencyBdt = 17,
  /// Belgian Franc (BEF BEF)
    GraphQLCurrencyBef = 18,
  /// Bulgarian Hard Lev (BGL BGL)
    GraphQLCurrencyBgl = 19,
  /// Bulgarian Lev (BGN BGN)
    GraphQLCurrencyBgn = 20,
  /// Bahraini Dinar (BHD BHD)
    GraphQLCurrencyBhd = 21,
  /// Burundian Franc (BIF BIF)
    GraphQLCurrencyBif = 22,
  /// Bermudan Dollar (BMD BMD)
    GraphQLCurrencyBmd = 23,
  /// Brunei Dollar (BND BND)
    GraphQLCurrencyBnd = 24,
  /// Bolivian Boliviano (BOB BOB)
    GraphQLCurrencyBob = 25,
  /// Bolivian Mvdol (BOV BOV)
    GraphQLCurrencyBov = 26,
  /// Brazilian Real (BRL BRL)
    GraphQLCurrencyBrl = 27,
  /// Bahamian Dollar (BSD BSD)
    GraphQLCurrencyBsd = 28,
  /// Bhutanese Ngultrum (BTN BTN)
    GraphQLCurrencyBtn = 29,
  /// Botswanan Pula (BWP BWP)
    GraphQLCurrencyBwp = 30,
  /// Belarusian Ruble (1994-1999) (BYB BYB)
    GraphQLCurrencyByb = 31,
  /// Belarusian Ruble (BYN BYN)
    GraphQLCurrencyByn = 32,
  /// Belarusian Ruble (2000-2016) (BYR BYR)
    GraphQLCurrencyByr = 33,
  /// Belize Dollar (BZD BZD)
    GraphQLCurrencyBzd = 34,
  /// Canadian Dollar (CAD CAD)
    GraphQLCurrencyCad = 35,
  /// Congolese Franc (CDF CDF)
    GraphQLCurrencyCdf = 36,
  /// CHE (CHE CHE)
    GraphQLCurrencyChe = 37,
  /// Swiss Franc (CHF CHF)
    GraphQLCurrencyChf = 38,
  /// CHW (CHW CHW)
    GraphQLCurrencyChw = 39,
  /// Chilean Unit of Account (UF) (CLF CLF)
    GraphQLCurrencyClf = 40,
  /// Chilean Peso (CLP CLP)
    GraphQLCurrencyClp = 41,
  /// Chinese Yuan (CNY CNY)
    GraphQLCurrencyCny = 42,
  /// Colombian Peso (COP COP)
    GraphQLCurrencyCop = 43,
  /// COU (COU COU)
    GraphQLCurrencyCou = 44,
  /// Costa Rican Colón (CRC CRC)
    GraphQLCurrencyCrc = 45,
  /// Serbian Dinar (2002-2006) (CSD CSD)
    GraphQLCurrencyCsd = 46,
  /// Cuban Convertible Peso (CUC CUC)
    GraphQLCurrencyCuc = 47,
  /// Cuban Peso (CUP CUP)
    GraphQLCurrencyCup = 48,
  /// Cape Verdean Escudo (CVE CVE)
    GraphQLCurrencyCve = 49,
  /// Cypriot Pound (CYP CYP)
    GraphQLCurrencyCyp = 50,
  /// Czech Republic Koruna (CZK CZK)
    GraphQLCurrencyCzk = 51,
  /// German Mark (DEM DEM)
    GraphQLCurrencyDem = 52,
  /// Djiboutian Franc (DJF DJF)
    GraphQLCurrencyDjf = 53,
  /// Danish Krone (DKK DKK)
    GraphQLCurrencyDkk = 54,
  /// Dominican Peso (DOP DOP)
    GraphQLCurrencyDop = 55,
  /// Algerian Dinar (DZD DZD)
    GraphQLCurrencyDzd = 56,
  /// Estonian Kroon (EEK EEK)
    GraphQLCurrencyEek = 57,
  /// Egyptian Pound (EGP EGP)
    GraphQLCurrencyEgp = 58,
  /// Eritrean Nakfa (ERN ERN)
    GraphQLCurrencyErn = 59,
  /// Spanish Peseta (ESP ESP)
    GraphQLCurrencyEsp = 60,
  /// Ethiopian Birr (ETB ETB)
    GraphQLCurrencyEtb = 61,
  /// Euro (EUR EUR)
    GraphQLCurrencyEur = 62,
  /// Finnish Markka (FIM FIM)
    GraphQLCurrencyFim = 63,
  /// Fijian Dollar (FJD FJD)
    GraphQLCurrencyFjd = 64,
  /// Falkland Islands Pound (FKP FKP)
    GraphQLCurrencyFkp = 65,
  /// French Franc (FRF FRF)
    GraphQLCurrencyFrf = 66,
  /// British Pound Sterling (GBP GBP)
    GraphQLCurrencyGbp = 67,
  /// Georgian Lari (GEL GEL)
    GraphQLCurrencyGel = 68,
  /// Ghanaian Cedi (1979-2007) (GHC GHC)
    GraphQLCurrencyGhc = 69,
  /// Ghanaian Cedi (GHS GHS)
    GraphQLCurrencyGhs = 70,
  /// Gibraltar Pound (GIP GIP)
    GraphQLCurrencyGip = 71,
  /// Gambian Dalasi (GMD GMD)
    GraphQLCurrencyGmd = 72,
  /// Guinean Franc (GNF GNF)
    GraphQLCurrencyGnf = 73,
  /// Greek Drachma (GRD GRD)
    GraphQLCurrencyGrd = 74,
  /// Guatemalan Quetzal (GTQ GTQ)
    GraphQLCurrencyGtq = 75,
  /// Guinea-Bissau Peso (GWP GWP)
    GraphQLCurrencyGwp = 76,
  /// Guyanaese Dollar (GYD GYD)
    GraphQLCurrencyGyd = 77,
  /// Hong Kong Dollar (HKD HKD)
    GraphQLCurrencyHkd = 78,
  /// Honduran Lempira (HNL HNL)
    GraphQLCurrencyHnl = 79,
  /// Kuna (HRK HRK)
    GraphQLCurrencyHrk = 80,
  /// Haitian Gourde (HTG HTG)
    GraphQLCurrencyHtg = 81,
  /// Hungarian Forint (HUF HUF)
    GraphQLCurrencyHuf = 82,
  /// Indonesian Rupiah (IDR IDR)
    GraphQLCurrencyIdr = 83,
  /// Irish Pound (IEP IEP)
    GraphQLCurrencyIep = 84,
  /// Israeli New Sheqel (ILS ILS)
    GraphQLCurrencyIls = 85,
  /// Indian Rupee (INR INR)
    GraphQLCurrencyInr = 86,
  /// Iraqi Dinar (IQD IQD)
    GraphQLCurrencyIqd = 87,
  /// Iranian Rial (IRR IRR)
    GraphQLCurrencyIrr = 88,
  /// Icelandic Króna (ISK ISK)
    GraphQLCurrencyIsk = 89,
  /// Italian Lira (ITL ITL)
    GraphQLCurrencyItl = 90,
  /// Jamaican Dollar (JMD JMD)
    GraphQLCurrencyJmd = 91,
  /// Jordanian Dinar (JOD JOD)
    GraphQLCurrencyJod = 92,
  /// Japanese Yen (JPY JPY)
    GraphQLCurrencyJpy = 93,
  /// Kenyan Shilling (KES KES)
    GraphQLCurrencyKes = 94,
  /// Kyrgystani Som (KGS KGS)
    GraphQLCurrencyKgs = 95,
  /// Cambodian Riel (KHR KHR)
    GraphQLCurrencyKhr = 96,
  /// Comorian Franc (KMF KMF)
    GraphQLCurrencyKmf = 97,
  /// North Korean Won (KPW KPW)
    GraphQLCurrencyKpw = 98,
  /// South Korean Won (KRW KRW)
    GraphQLCurrencyKrw = 99,
  /// Kuwaiti Dinar (KWD KWD)
    GraphQLCurrencyKwd = 100,
  /// Cayman Islands Dollar (KYD KYD)
    GraphQLCurrencyKyd = 101,
  /// Kazakhstani Tenge (KZT KZT)
    GraphQLCurrencyKzt = 102,
  /// Lao Kip (LAK LAK)
    GraphQLCurrencyLak = 103,
  /// Lebanese Pound (LBP LBP)
    GraphQLCurrencyLbp = 104,
  /// Sri Lankan Rupee (LKR LKR)
    GraphQLCurrencyLkr = 105,
  /// Liberian Dollar (LRD LRD)
    GraphQLCurrencyLrd = 106,
  /// Lesotho Loti (LSL LSL)
    GraphQLCurrencyLsl = 107,
  /// Lithuanian Litas (LTL LTL)
    GraphQLCurrencyLtl = 108,
  /// Luxembourgian Franc (LUF LUF)
    GraphQLCurrencyLuf = 109,
  /// Latvian Lats (LVL LVL)
    GraphQLCurrencyLvl = 110,
  /// Libyan Dinar (LYD LYD)
    GraphQLCurrencyLyd = 111,
  /// Moroccan Dirham (MAD MAD)
    GraphQLCurrencyMad = 112,
  /// Moldovan Leu (MDL MDL)
    GraphQLCurrencyMdl = 113,
  /// Malagasy Ariary (MGA MGA)
    GraphQLCurrencyMga = 114,
  /// Malagasy Franc (MGF MGF)
    GraphQLCurrencyMgf = 115,
  /// Macedonian Denar (MKD MKD)
    GraphQLCurrencyMkd = 116,
  /// Myanma Kyat (MMK MMK)
    GraphQLCurrencyMmk = 117,
  /// Mongolian Tugrik (MNT MNT)
    GraphQLCurrencyMnt = 118,
  /// Macanese Pataca (MOP MOP)
    GraphQLCurrencyMop = 119,
  /// Mauritanian Ouguiya (MRO MRO)
    GraphQLCurrencyMro = 120,
  /// Mauritanian Ouguiya (MRU MRU)
    GraphQLCurrencyMru = 121,
  /// Maltese Lira (MTL MTL)
    GraphQLCurrencyMtl = 122,
  /// Mauritian Rupee (MUR MUR)
    GraphQLCurrencyMur = 123,
  /// Maldivian Rufiyaa (MVR MVR)
    GraphQLCurrencyMvr = 124,
  /// Malawian Malawi Kwacha (MWK MWK)
    GraphQLCurrencyMwk = 125,
  /// Mexican Peso (MXN MXN)
    GraphQLCurrencyMxn = 126,
  /// Mexican Investment Unit (MXV MXV)
    GraphQLCurrencyMxv = 127,
  /// Malaysian Ringgit (MYR MYR)
    GraphQLCurrencyMyr = 128,
  /// Mozambican Metical (1980-2006) (MZM MZM)
    GraphQLCurrencyMzm = 129,
  /// Mozambican Metical (MZN MZN)
    GraphQLCurrencyMzn = 130,
  /// Namibian Dollar (NAD NAD)
    GraphQLCurrencyNad = 131,
  /// Nigerian Naira (NGN NGN)
    GraphQLCurrencyNgn = 132,
  /// Nicaraguan Córdoba (NIO NIO)
    GraphQLCurrencyNio = 133,
  /// Dutch Guilder (NLG NLG)
    GraphQLCurrencyNlg = 134,
  /// Norwegian Krone (NOK NOK)
    GraphQLCurrencyNok = 135,
  /// Nepalese Rupee (NPR NPR)
    GraphQLCurrencyNpr = 136,
  /// New Zealand Dollar (NZD NZD)
    GraphQLCurrencyNzd = 137,
  /// Omani Rial (OMR OMR)
    GraphQLCurrencyOmr = 138,
  /// Panamanian Balboa (PAB PAB)
    GraphQLCurrencyPab = 139,
  /// Peruvian Sol (PEN PEN)
    GraphQLCurrencyPen = 140,
  /// Papua New Guinean Kina (PGK PGK)
    GraphQLCurrencyPgk = 141,
  /// Philippine Peso (PHP PHP)
    GraphQLCurrencyPhp = 142,
  /// Pakistani Rupee (PKR PKR)
    GraphQLCurrencyPkr = 143,
  /// Polish Zloty (PLN PLN)
    GraphQLCurrencyPln = 144,
  /// Portuguese Escudo (PTE PTE)
    GraphQLCurrencyPte = 145,
  /// Paraguayan Guarani (PYG PYG)
    GraphQLCurrencyPyg = 146,
  /// Qatari Rial (QAR QAR)
    GraphQLCurrencyQar = 147,
  /// Romanian Leu (1952-2006) (ROL ROL)
    GraphQLCurrencyRol = 148,
  /// Romanian Leu (RON RON)
    GraphQLCurrencyRon = 149,
  /// Serbian Dinar (RSD RSD)
    GraphQLCurrencyRsd = 150,
  /// Russian Ruble (RUB RUB)
    GraphQLCurrencyRub = 151,
  /// Russian Ruble (1991-1998) (RUR RUR)
    GraphQLCurrencyRur = 152,
  /// Rwandan Franc (RWF RWF)
    GraphQLCurrencyRwf = 153,
  /// Saudi Riyal (SAR SAR)
    GraphQLCurrencySar = 154,
  /// Solomon Islands Dollar (SBD SBD)
    GraphQLCurrencySbd = 155,
  /// Seychellois Rupee (SCR SCR)
    GraphQLCurrencyScr = 156,
  /// Sudanese Dinar (1992-2007) (SDD SDD)
    GraphQLCurrencySdd = 157,
  /// Sudanese Pound (SDG SDG)
    GraphQLCurrencySdg = 158,
  /// Swedish Krona (SEK SEK)
    GraphQLCurrencySek = 159,
  /// Singapore Dollar (SGD SGD)
    GraphQLCurrencySgd = 160,
  /// Saint Helena Pound (SHP SHP)
    GraphQLCurrencyShp = 161,
  /// Slovenian Tolar (SIT SIT)
    GraphQLCurrencySit = 162,
  /// Slovak Koruna (SKK SKK)
    GraphQLCurrencySkk = 163,
  /// Sierra Leonean Leone (SLL SLL)
    GraphQLCurrencySll = 164,
  /// Somali Shilling (SOS SOS)
    GraphQLCurrencySos = 165,
  /// Surinamese Dollar (SRD SRD)
    GraphQLCurrencySrd = 166,
  /// Surinamese Guilder (SRG SRG)
    GraphQLCurrencySrg = 167,
  /// South Sudanese Pound (SSP SSP)
    GraphQLCurrencySsp = 168,
  /// São Tomé and Príncipe Dobra (STD STD)
    GraphQLCurrencyStd = 169,
  /// São Tomé and Príncipe Dobra (STN STN)
    GraphQLCurrencyStn = 170,
  /// Salvadoran Colón (SVC SVC)
    GraphQLCurrencySvc = 171,
  /// Syrian Pound (SYP SYP)
    GraphQLCurrencySyp = 172,
  /// Swazi Lilangeni (SZL SZL)
    GraphQLCurrencySzl = 173,
  /// Thai Baht (THB THB)
    GraphQLCurrencyThb = 174,
  /// Tajikistani Somoni (TJS TJS)
    GraphQLCurrencyTjs = 175,
  /// Turkmenistani Manat (1993-2009) (TMM TMM)
    GraphQLCurrencyTmm = 176,
  /// Turkmenistani Manat (TMT TMT)
    GraphQLCurrencyTmt = 177,
  /// Tunisian Dinar (TND TND)
    GraphQLCurrencyTnd = 178,
  /// Tongan Paʻanga (TOP TOP)
    GraphQLCurrencyTop = 179,
  /// Timorese Escudo (TPE TPE)
    GraphQLCurrencyTpe = 180,
  /// Turkish Lira (1922-2005) (TRL TRL)
    GraphQLCurrencyTrl = 181,
  /// Turkish Lira (TRY TRY)
    GraphQLCurrencyTry = 182,
  /// Trinidad and Tobago Dollar (TTD TTD)
    GraphQLCurrencyTtd = 183,
  /// New Taiwan Dollar (TWD TWD)
    GraphQLCurrencyTwd = 184,
  /// Tanzanian Shilling (TZS TZS)
    GraphQLCurrencyTzs = 185,
  /// Ukrainian Hryvnia (UAH UAH)
    GraphQLCurrencyUah = 186,
  /// Ugandan Shilling (UGX UGX)
    GraphQLCurrencyUgx = 187,
  /// US Dollar (USD $)
    GraphQLCurrencyUsd = 188,
  /// US Dollar (Next day) (USN USN)
    GraphQLCurrencyUsn = 189,
  /// US Dollar (Same day) (USS USS)
    GraphQLCurrencyUss = 190,
  /// UYI (UYI UYI)
    GraphQLCurrencyUyi = 191,
  /// Uruguayan Peso (UYU UYU)
    GraphQLCurrencyUyu = 192,
  /// Uzbekistan Som (UZS UZS)
    GraphQLCurrencyUzs = 193,
  /// Venezuelan Bolívar (1871-2008) (VEB VEB)
    GraphQLCurrencyVeb = 194,
  /// Venezuelan Bolívar (VEF VEF)
    GraphQLCurrencyVef = 195,
  /// Venezuelan Bolívar Soberano (VES VES)
    GraphQLCurrencyVes = 196,
  /// Vietnamese Dong (VND VND)
    GraphQLCurrencyVnd = 197,
  /// Vanuatu Vatu (VUV VUV)
    GraphQLCurrencyVuv = 198,
  /// Samoan Tala (WST WST)
    GraphQLCurrencyWst = 199,
  /// CFA Franc BEAC (XAF XAF)
    GraphQLCurrencyXaf = 200,
  /// Silver (XAG XAG)
    GraphQLCurrencyXag = 201,
  /// Gold (XAU XAU)
    GraphQLCurrencyXau = 202,
  /// European Composite Unit (XBA XBA)
    GraphQLCurrencyXba = 203,
  /// European Monetary Unit (XBB XBB)
    GraphQLCurrencyXbb = 204,
  /// European Unit of Account (XBC) (XBC XBC)
    GraphQLCurrencyXbc = 205,
  /// European Unit of Account (XBD) (XBD XBD)
    GraphQLCurrencyXbd = 206,
  /// East Caribbean Dollar (XCD XCD)
    GraphQLCurrencyXcd = 207,
  /// Special Drawing Rights (XDR XDR)
    GraphQLCurrencyXdr = 208,
  /// French Gold Franc (XFO XFO)
    GraphQLCurrencyXfo = 209,
  /// French UIC-Franc (XFU XFU)
    GraphQLCurrencyXfu = 210,
  /// CFA Franc BCEAO (XOF XOF)
    GraphQLCurrencyXof = 211,
  /// Palladium (XPD XPD)
    GraphQLCurrencyXpd = 212,
  /// CFP Franc (XPF XPF)
    GraphQLCurrencyXpf = 213,
  /// Platinum (XPT XPT)
    GraphQLCurrencyXpt = 214,
  /// Sucre (XSU XSU)
    GraphQLCurrencyXsu = 215,
  /// Testing Currency Code (XTS XTS)
    GraphQLCurrencyXts = 216,
  /// ADB Unit of Account (XUA XUA)
    GraphQLCurrencyXua = 217,
  /// Unknown Currency (XXX XXX)
    GraphQLCurrencyXxx = 218,
  /// Yemeni Rial (YER YER)
    GraphQLCurrencyYer = 219,
  /// Yugoslavian New Dinar (1994-2002) (YUM YUM)
    GraphQLCurrencyYum = 220,
  /// South African Rand (ZAR ZAR)
    GraphQLCurrencyZar = 221,
  /// Zambian Kwacha (ZMK ZMK)
    GraphQLCurrencyZmk = 222,
  /// ZMW (ZMW ZMW)
    GraphQLCurrencyZmw = 223,
  /// Zimbabwean Dollar (1980-2008) (ZWD ZWD)
    GraphQLCurrencyZwd = 224,
  /// Zimbabwean Dollar (2009) (ZWL ZWL)
    GraphQLCurrencyZwl = 225,
  /// ZWN (ZWN ZWN)
    GraphQLCurrencyZwn = 226,
  /// Zimbabwean Dollar (2008) (ZWR ZWR)
    GraphQLCurrencyZwr = 227,
  /// Auto generated constant for unknown enum values
    GraphQLCurrency__unknown = 228,
  };
  
  /// ISO639-1 language.
  typedef SWIFT_ENUM_NAMED(NSInteger, GraphQLLanguage, "ObjcGraphQLLanguage", open) {
  /// Afar (aa)
    GraphQLLanguageAa = 0,
  /// Abkhazian (ab)
    GraphQLLanguageAb = 1,
  /// Avestan (ae)
    GraphQLLanguageAe = 2,
  /// Afrikaans (af)
    GraphQLLanguageAf = 3,
  /// Akan (ak)
    GraphQLLanguageAk = 4,
  /// Amharic (am)
    GraphQLLanguageAm = 5,
  /// Aragonese (an)
    GraphQLLanguageAn = 6,
  /// Arabic (ar)
    GraphQLLanguageAr = 7,
  /// Assamese (as)
    GraphQLLanguageAs = 8,
  /// Avaric (av)
    GraphQLLanguageAv = 9,
  /// Aymara (ay)
    GraphQLLanguageAy = 10,
  /// Azerbaijani (az)
    GraphQLLanguageAz = 11,
  /// Bashkir (ba)
    GraphQLLanguageBa = 12,
  /// Belarusian (be)
    GraphQLLanguageBe = 13,
  /// Bulgarian (bg)
    GraphQLLanguageBg = 14,
  /// Bihari (bh)
    GraphQLLanguageBh = 15,
  /// Bislama (bi)
    GraphQLLanguageBi = 16,
  /// Bambara (bm)
    GraphQLLanguageBm = 17,
  /// Bengali (bn)
    GraphQLLanguageBn = 18,
  /// Tibetan (bo)
    GraphQLLanguageBo = 19,
  /// Breton (br)
    GraphQLLanguageBr = 20,
  /// Bosnian (bs)
    GraphQLLanguageBs = 21,
  /// Catalan (ca)
    GraphQLLanguageCa = 22,
  /// Chechen (ce)
    GraphQLLanguageCe = 23,
  /// Chamorro (ch)
    GraphQLLanguageCh = 24,
  /// Corsican (co)
    GraphQLLanguageCo = 25,
  /// Cree (cr)
    GraphQLLanguageCr = 26,
  /// Czech (cs)
    GraphQLLanguageCs = 27,
  /// Church Slavic (cu)
    GraphQLLanguageCu = 28,
  /// Chuvash (cv)
    GraphQLLanguageCv = 29,
  /// Welsh (cy)
    GraphQLLanguageCy = 30,
  /// Danish (da)
    GraphQLLanguageDa = 31,
  /// German (de)
    GraphQLLanguageDe = 32,
  /// Divehi (dv)
    GraphQLLanguageDv = 33,
  /// Dzongkha (dz)
    GraphQLLanguageDz = 34,
  /// Ewe (ee)
    GraphQLLanguageEe = 35,
  /// Greek (el)
    GraphQLLanguageEl = 36,
  /// English (en)
    GraphQLLanguageEn = 37,
  /// Esperanto (eo)
    GraphQLLanguageEo = 38,
  /// Spanish (es)
    GraphQLLanguageEs = 39,
  /// Estonian (et)
    GraphQLLanguageEt = 40,
  /// Basque (eu)
    GraphQLLanguageEu = 41,
  /// Persian (fa)
    GraphQLLanguageFa = 42,
  /// Fulah (ff)
    GraphQLLanguageFf = 43,
  /// Finnish (fi)
    GraphQLLanguageFi = 44,
  /// Fijian (fj)
    GraphQLLanguageFj = 45,
  /// Faroese (fo)
    GraphQLLanguageFo = 46,
  /// French (fr)
    GraphQLLanguageFr = 47,
  /// Frisian (fy)
    GraphQLLanguageFy = 48,
  /// Irish (ga)
    GraphQLLanguageGa = 49,
  /// Scottish Gaelic (gd)
    GraphQLLanguageGd = 50,
  /// Gallegan (gl)
    GraphQLLanguageGl = 51,
  /// Guarani (gn)
    GraphQLLanguageGn = 52,
  /// Gujarati (gu)
    GraphQLLanguageGu = 53,
  /// Manx (gv)
    GraphQLLanguageGv = 54,
  /// Hausa (ha)
    GraphQLLanguageHa = 55,
  /// Hebrew (he)
    GraphQLLanguageHe = 56,
  /// Hindi (hi)
    GraphQLLanguageHi = 57,
  /// Hiri Motu (ho)
    GraphQLLanguageHo = 58,
  /// Croatian (hr)
    GraphQLLanguageHr = 59,
  /// Haitian (ht)
    GraphQLLanguageHt = 60,
  /// Hungarian (hu)
    GraphQLLanguageHu = 61,
  /// Armenian (hy)
    GraphQLLanguageHy = 62,
  /// Herero (hz)
    GraphQLLanguageHz = 63,
  /// Interlingua (ia)
    GraphQLLanguageIa = 64,
  /// Indonesian (id)
    GraphQLLanguageId = 65,
  /// Interlingue (ie)
    GraphQLLanguageIe = 66,
  /// Igbo (ig)
    GraphQLLanguageIg = 67,
  /// Sichuan Yi (ii)
    GraphQLLanguageIi = 68,
  /// Inupiaq (ik)
    GraphQLLanguageIk = 69,
  /// Indonesian (in)
    GraphQLLanguageIn = 70,
  /// Ido (io)
    GraphQLLanguageIo = 71,
  /// Icelandic (is)
    GraphQLLanguageIs = 72,
  /// Italian (it)
    GraphQLLanguageIt = 73,
  /// Inuktitut (iu)
    GraphQLLanguageIu = 74,
  /// Hebrew (iw)
    GraphQLLanguageIw = 75,
  /// Japanese (ja)
    GraphQLLanguageJa = 76,
  /// Yiddish (ji)
    GraphQLLanguageJi = 77,
  /// Javanese (jv)
    GraphQLLanguageJv = 78,
  /// Georgian (ka)
    GraphQLLanguageKa = 79,
  /// Kongo (kg)
    GraphQLLanguageKg = 80,
  /// Kikuyu (ki)
    GraphQLLanguageKi = 81,
  /// Kwanyama (kj)
    GraphQLLanguageKj = 82,
  /// Kazakh (kk)
    GraphQLLanguageKk = 83,
  /// Greenlandic (kl)
    GraphQLLanguageKl = 84,
  /// Khmer (km)
    GraphQLLanguageKm = 85,
  /// Kannada (kn)
    GraphQLLanguageKn = 86,
  /// Korean (ko)
    GraphQLLanguageKo = 87,
  /// Kanuri (kr)
    GraphQLLanguageKr = 88,
  /// Kashmiri (ks)
    GraphQLLanguageKs = 89,
  /// Kurdish (ku)
    GraphQLLanguageKu = 90,
  /// Komi (kv)
    GraphQLLanguageKv = 91,
  /// Cornish (kw)
    GraphQLLanguageKw = 92,
  /// Kirghiz (ky)
    GraphQLLanguageKy = 93,
  /// Latin (la)
    GraphQLLanguageLa = 94,
  /// Luxembourgish (lb)
    GraphQLLanguageLb = 95,
  /// Ganda (lg)
    GraphQLLanguageLg = 96,
  /// Limburgish (li)
    GraphQLLanguageLi = 97,
  /// Lingala (ln)
    GraphQLLanguageLn = 98,
  /// Lao (lo)
    GraphQLLanguageLo = 99,
  /// Lithuanian (lt)
    GraphQLLanguageLt = 100,
  /// Luba-Katanga (lu)
    GraphQLLanguageLu = 101,
  /// Latvian (lv)
    GraphQLLanguageLv = 102,
  /// Malagasy (mg)
    GraphQLLanguageMg = 103,
  /// Marshallese (mh)
    GraphQLLanguageMh = 104,
  /// Maori (mi)
    GraphQLLanguageMi = 105,
  /// Macedonian (mk)
    GraphQLLanguageMk = 106,
  /// Malayalam (ml)
    GraphQLLanguageMl = 107,
  /// Mongolian (mn)
    GraphQLLanguageMn = 108,
  /// Moldavian (mo)
    GraphQLLanguageMo = 109,
  /// Marathi (mr)
    GraphQLLanguageMr = 110,
  /// Malay (ms)
    GraphQLLanguageMs = 111,
  /// Maltese (mt)
    GraphQLLanguageMt = 112,
  /// Burmese (my)
    GraphQLLanguageMy = 113,
  /// Nauru (na)
    GraphQLLanguageNa = 114,
  /// Norwegian Bokmål (nb)
    GraphQLLanguageNb = 115,
  /// North Ndebele (nd)
    GraphQLLanguageNd = 116,
  /// Nepali (ne)
    GraphQLLanguageNe = 117,
  /// Ndonga (ng)
    GraphQLLanguageNg = 118,
  /// Dutch (nl)
    GraphQLLanguageNl = 119,
  /// Norwegian Nynorsk (nn)
    GraphQLLanguageNn = 120,
  /// Norwegian (no)
    GraphQLLanguageNo = 121,
  /// South Ndebele (nr)
    GraphQLLanguageNr = 122,
  /// Navajo (nv)
    GraphQLLanguageNv = 123,
  /// Nyanja (ny)
    GraphQLLanguageNy = 124,
  /// Occitan (oc)
    GraphQLLanguageOc = 125,
  /// Ojibwa (oj)
    GraphQLLanguageOj = 126,
  /// Oromo (om)
    GraphQLLanguageOm = 127,
  /// Oriya (or)
    GraphQLLanguageOr = 128,
  /// Ossetian (os)
    GraphQLLanguageOs = 129,
  /// Panjabi (pa)
    GraphQLLanguagePa = 130,
  /// Pali (pi)
    GraphQLLanguagePi = 131,
  /// Polish (pl)
    GraphQLLanguagePl = 132,
  /// Pushto (ps)
    GraphQLLanguagePs = 133,
  /// Portuguese (pt)
    GraphQLLanguagePt = 134,
  /// Quechua (qu)
    GraphQLLanguageQu = 135,
  /// Raeto-Romance (rm)
    GraphQLLanguageRm = 136,
  /// Rundi (rn)
    GraphQLLanguageRn = 137,
  /// Romanian (ro)
    GraphQLLanguageRo = 138,
  /// Russian (ru)
    GraphQLLanguageRu = 139,
  /// Kinyarwanda (rw)
    GraphQLLanguageRw = 140,
  /// Sanskrit (sa)
    GraphQLLanguageSa = 141,
  /// Sardinian (sc)
    GraphQLLanguageSc = 142,
  /// Sindhi (sd)
    GraphQLLanguageSd = 143,
  /// Northern Sami (se)
    GraphQLLanguageSe = 144,
  /// Sango (sg)
    GraphQLLanguageSg = 145,
  /// Sinhalese (si)
    GraphQLLanguageSi = 146,
  /// Slovak (sk)
    GraphQLLanguageSk = 147,
  /// Slovenian (sl)
    GraphQLLanguageSl = 148,
  /// Samoan (sm)
    GraphQLLanguageSm = 149,
  /// Shona (sn)
    GraphQLLanguageSn = 150,
  /// Somali (so)
    GraphQLLanguageSo = 151,
  /// Albanian (sq)
    GraphQLLanguageSq = 152,
  /// Serbian (sr)
    GraphQLLanguageSr = 153,
  /// Swati (ss)
    GraphQLLanguageSs = 154,
  /// Southern Sotho (st)
    GraphQLLanguageSt = 155,
  /// Sundanese (su)
    GraphQLLanguageSu = 156,
  /// Swedish (sv)
    GraphQLLanguageSv = 157,
  /// Swahili (sw)
    GraphQLLanguageSw = 158,
  /// Tamil (ta)
    GraphQLLanguageTa = 159,
  /// Telugu (te)
    GraphQLLanguageTe = 160,
  /// Tajik (tg)
    GraphQLLanguageTg = 161,
  /// Thai (th)
    GraphQLLanguageTh = 162,
  /// Tigrinya (ti)
    GraphQLLanguageTi = 163,
  /// Turkmen (tk)
    GraphQLLanguageTk = 164,
  /// Tagalog (tl)
    GraphQLLanguageTl = 165,
  /// Tswana (tn)
    GraphQLLanguageTn = 166,
  /// Tonga (to)
    GraphQLLanguageTo = 167,
  /// Turkish (tr)
    GraphQLLanguageTr = 168,
  /// Tsonga (ts)
    GraphQLLanguageTs = 169,
  /// Tatar (tt)
    GraphQLLanguageTt = 170,
  /// Twi (tw)
    GraphQLLanguageTw = 171,
  /// Tahitian (ty)
    GraphQLLanguageTy = 172,
  /// Uighur (ug)
    GraphQLLanguageUg = 173,
  /// Ukrainian (uk)
    GraphQLLanguageUk = 174,
  /// Urdu (ur)
    GraphQLLanguageUr = 175,
  /// Uzbek (uz)
    GraphQLLanguageUz = 176,
  /// Venda (ve)
    GraphQLLanguageVe = 177,
  /// Vietnamese (vi)
    GraphQLLanguageVi = 178,
  /// Volapük (vo)
    GraphQLLanguageVo = 179,
  /// Walloon (wa)
    GraphQLLanguageWa = 180,
  /// Wolof (wo)
    GraphQLLanguageWo = 181,
  /// Xhosa (xh)
    GraphQLLanguageXh = 182,
  /// Yiddish (yi)
    GraphQLLanguageYi = 183,
  /// Yoruba (yo)
    GraphQLLanguageYo = 184,
  /// Zhuang (za)
    GraphQLLanguageZa = 185,
  /// Chinese (zh)
    GraphQLLanguageZh = 186,
  /// Zulu (zu)
    GraphQLLanguageZu = 187,
  /// Auto generated constant for unknown enum values
    GraphQLLanguage__unknown = 188,
  };
  
  @class UIImage;
  
  /// Object to specify the image to use for the incoming messages avatar.
  SWIFT_CLASS_NAMED("ObjcIncomingMessageAvatar")
  @interface IncomingMessageAvatar : NSObject
  - (nonnull instancetype)initWithUrl:(NSURL * _Nonnull)url OBJC_DESIGNATED_INITIALIZER;
  - (nonnull instancetype)initWithImage:(UIImage * _Nonnull)image OBJC_DESIGNATED_INITIALIZER;
  - (nonnull instancetype)init SWIFT_UNAVAILABLE;
  + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
  @end
  
  
  /// Object to specify the language to use for the targeting.
  SWIFT_CLASS_NAMED("ObjcSDKLanguageOption")
  @interface SDKLanguageOption : NSObject
  + (SDKLanguageOption * _Nonnull)customWithValue:(enum GraphQLLanguage)value SWIFT_WARN_UNUSED_RESULT;
  + (SDKLanguageOption * _Nonnull)default SWIFT_WARN_UNUSED_RESULT;
  - (nonnull instancetype)init SWIFT_UNAVAILABLE;
  + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
  @end
  
  
  /// Object that will hold actual user information.
  SWIFT_CLASS_NAMED("ObjcUser")
  @interface User : NSObject
  - (nonnull instancetype)initWithName:(NSString * _Nonnull)name OBJC_DESIGNATED_INITIALIZER;
  @property (nonatomic, copy) NSString * _Nonnull name;
  - (nonnull instancetype)init SWIFT_UNAVAILABLE;
  + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
  @end
  
  
  SWIFT_CLASS_NAMED("ObjcVisitorCustomData")
  @interface VisitorCustomData : NSObject
  - (nonnull instancetype)initWithInt:(NSInteger)int_ OBJC_DESIGNATED_INITIALIZER;
  - (nonnull instancetype)initWithString:(NSString * _Nonnull)string OBJC_DESIGNATED_INITIALIZER;
  - (nonnull instancetype)initWithBoolean:(BOOL)boolean OBJC_DESIGNATED_INITIALIZER;
  - (nonnull instancetype)initWithDouble:(double)double_ OBJC_DESIGNATED_INITIALIZER;
  - (nonnull instancetype)init SWIFT_UNAVAILABLE;
  + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
  @end
  
  @class NSUUID;
  
  SWIFT_CLASS("_TtC22IAdvizeConversationSDK19TargetingController")
  @interface TargetingController : NSObject
  @property (nonatomic, weak) id <TargetingControllerDelegate> _Nullable delegate;
  @property (nonatomic, readonly) BOOL isActiveTargetingRuleAvailable;
  /// Register the id of the targeting rule, so that messages sent via the SDK are targeted
  /// to the right targeting rule.
  /// <ul>
  ///   <li>
  ///     ruleId: A targeting rule allows to target visitors proactively or reactively, based on
  ///     their browsing behaviour, their profile or their business criterias (e.g. basket amount, scoring, etc).
  ///     You can find this id in the details of a targeting rule in the iAdvize
  ///     Administration Panel.
  ///   </li>
  /// </ul>
  - (void)activateTargetingRuleWithTargetingRuleId:(NSUUID * _Nonnull)targetingRuleId;
  /// Register a user navigation through the app. This will refresh the current screen identifier (usually used to compute stats).
  - (void)registerUserNavigation;
  - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
  @end
  
  
  @interface TargetingController (SWIFT_EXTENSION(IAdvizeConversationSDK)) <ConversationControllerDelegate>
  - (void)ongoingConversationStatusDidChangeWithHasOngoingConversation:(BOOL)hasOngoingConversation;
  @end
  
  
  
  @interface TargetingController (SWIFT_EXTENSION(IAdvizeConversationSDK))
  /// Get the log level of the iAdvize Conversation SDK console logger.
  /// By default, the iAdvize Conversation SDK will log only the <code>warning</code> and the <code>error</code> message
  /// in the console. You can change this value to have more feedbacks on the iAdvize Conversation
  /// SDK activity.
  - (SDKLanguageOption * _Nonnull)getLanguage SWIFT_WARN_UNUSED_RESULT;
  /// Set the log level of the iAdvize Conversation SDK console logger.
  /// By default, the iAdvize Conversation SDK will log only the <code>warning</code> and the <code>error</code> message
  /// in the console. You can change this value to have more feedbacks on the iAdvize Conversation
  /// SDK activity.
  - (void)setLanguage:(SDKLanguageOption * _Nonnull)language;
  @end
  
  
  
  /// Describes a User Transaction.
  /// date:
  /// Date of the transaction.
  /// <ul>
  ///   <li>
  ///     externalTransactionId: Your transaction identifier.
  ///   </li>
  ///   <li>
  ///     amount: Amount of the transaction.
  ///   </li>
  ///   <li>
  ///     currency: Currency of the transaction.
  ///   </li>
  /// </ul>
  SWIFT_CLASS("_TtC22IAdvizeConversationSDK11Transaction")
  @interface Transaction : NSObject <NSCoding>
  - (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT;
  - (void)encodeWithCoder:(NSCoder * _Nonnull)aCoder;
  - (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)aDecoder OBJC_DESIGNATED_INITIALIZER;
  - (nonnull instancetype)init SWIFT_UNAVAILABLE;
  + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
  @end
  
  @class NSDate;
  
  @interface Transaction (SWIFT_EXTENSION(IAdvizeConversationSDK))
  - (nonnull instancetype)initWithExternalTransactionId:(NSString * _Nonnull)externalTransactionId date:(NSDate * _Nonnull)date amount:(double)amount currency:(enum GraphQLCurrency)currency;
  @end
  
  
  /// Manage transaction tracking through the iAdvize Conversation SDK.
  SWIFT_CLASS("_TtC22IAdvizeConversationSDK21TransactionController")
  @interface TransactionController : NSObject
  /// Register a new transaction concluded by your visitor.
  /// \param transaction transaction to register.
  ///
  - (void)registerTransaction:(Transaction * _Nonnull)transaction;
  - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
  @end
  
  
  
  
  
  
  
  
  
  
  
  
  
  #if __has_attribute(external_source_symbol)
  # pragma clang attribute pop
  #endif
  #pragma clang diagnostic pop
  #endif
  