//
//  appVuze.h
//  appVuze iOS SDK
//
//  Created by Maksim Orlovich on 9/9/16.
//  Copyright (c) 2016 appVuze, Inc. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface appVuze : NSObject

/*
 Initialize appVuze In-app Customer Support SDK. If initialization is successful, a chat dialog will be shown to the user.
 applicationKey - generated by the dashboard; bundle ID of the app must match bundle ID specified for the registered application.
 */
+ (void)initializeSdkWithApplicationKey:(NSString *)applicationKey;

/*
 Begin a help session. If successful, a chat dialog will be shown to the user.
 personName - name of the person using the application, if known. Pass nil if person's name is not known.
 customData - a dictionary of supplemental data that can be encoded to JSON format. This data will be presented to the
              customer support rep to help identify this user, for example email address or account number.
 */
+ (void)beginHelpSessionWithPersonName:(NSString *)personName
                            customData:(NSDictionary *)customData;



/* These can be set before or after the initialize call */

/*
 Set the body of UIAlertView shown when appVuze SDK experiences connection problem to appvuze.io server. Setting
 this value to nil assigns default message below.

 Default message: Network connectivity is required to use this service
 */
+ (void)setNetworkConnectivityRequiredMessage:(NSString *)networkConnectivityRequiredMessage;

/*
 Set the body of UIAlertView shown when something prevents help session initialization. For example,
 expired trial period, invalid application key or bundle id, appvuze.io server is down for maintenance, etc.
 This does not apply to condition when incoming request comes in outside configured support hours. Setting
 this value to nil assigns default message below.

 Default message: In-app support service is currently unavailable
 */
+ (void)setInAppSupportServiceUnavailableMessage:(NSString *)inAppSupportServiceUnavailableMessage;

/*
 Set the body of UIAlertView shown when support representative requests screen sharing from the device along with
 voice communication. Setting this value to nil assigns default message below.

 Default message: Customer support representative would like to view your application screen and use voice for communication
 */
+ (void)setIncomingSupportCallMessage:(NSString *)incomingSupportCallMessage;

/*
 Set the body of UIAlertView shown mobile user taps the exit button from on-going help session. Setting
 this value to nil assigns default message below.

 Default message: Are you sure you wish to disconnect from support?
 */
+ (void)setConfirmDisconnectFromSupportMessage:(NSString *)confirmDisconnectFromSupportMessage;

/*
 Set the body of UIAlertView shown when support representative ends screen sharing from the device along with
 voice communication. Setting this value to nil assigns default message below.

 Default message: Customer support representative is no longer viewing your application screen nor using voice for communication; however, you can still continue to chat
 */
+ (void)setEndedSupportCallMessage:(NSString *)endedSupportCallMessage;

/*
 Set the initial text value of the chat dialog seen by the users. Setting this value to nil assigns default message below.

 Default message: Hi. Please let us know how can we help you today by sending us a message with your request.
 */
+ (void)setWelcomeMessage:(NSString *)welcomeMessage;

/*
 Set the body of UIAlertView shown when SDK detects that a help session was interrupted due to an app crash. Setting
 this value to nil assigns default message below.

 Default message: Would you like to reconnect to help session in progress?
 */
+ (void)setReconnectToHelpSessionMessage:(NSString *)reconnectToHelpSessionMessage;

/*
 Set the body of UIAlertView shown when application requires an update to use the in-app support functionality. Setting
 this value to nil assigns default message below.

 Default message: Please download the latest version of this application to use in-app support functionality.
 */
+ (void)setApplicationUpdateRequiredMessage:(NSString *)applicationUpdateRequiredMessage;

@end
