#import <Foundation/Foundation.h>
#import <Cordova/CDVPlugin.h>
#import <Cordova/CDVInvokedUrlCommand.h>

@interface INDIndigitallBridge : NSObject

+ (void) initializeWithPlugin:(CDVPlugin *)plugin command:(CDVInvokedUrlCommand *)command;
+ (void) deviceGetWithPlugin:(CDVPlugin *)plugin command:(CDVInvokedUrlCommand *)command;
+ (void) deviceEnableWithPlugin:(CDVPlugin *)plugin command:(CDVInvokedUrlCommand *)command;
+ (void) deviceDisableWithPlugin:(CDVPlugin *)plugin command:(CDVInvokedUrlCommand *)command;
+ (void) topicsListWithPlugin:(CDVPlugin *)plugin command:(CDVInvokedUrlCommand *)command;
+ (void) topicsSubscribeWithPlugin:(CDVPlugin *)plugin command:(CDVInvokedUrlCommand *)command;
+ (void) topicsUnsubscribeWithPlugin:(CDVPlugin *)plugin command:(CDVInvokedUrlCommand *)command;
+ (void) setExternalCode: (CDVInvokedUrlCommand *)command;
+ (void) sendCustomEvent: (CDVInvokedUrlCommand *)command;
+ (void) packageNameWithPlugin:(CDVPlugin *)plugin command:(CDVInvokedUrlCommand *)command;
+ (void) getPushWithPlugin:(CDVPlugin *)plugin command:(CDVInvokedUrlCommand *)command;
+ (void) onIndigitallGetPushWithPlugin:(CDVPlugin *)plugin command:(CDVInvokedUrlCommand *)command;
+ (void) setDefaultViewUrlWithPlugin:(CDVPlugin *)plugin command:(CDVInvokedUrlCommand *)command;
+ (void) clearViewUrlWithPlugin:(CDVPlugin *)plugin command:(CDVInvokedUrlCommand *)command;
+ (void) logInWithPlugin:(CDVPlugin *)plugin command:(CDVInvokedUrlCommand *)command;
+ (void) logOutWithPlugin:(CDVPlugin *)plugin command:(CDVInvokedUrlCommand *)command;
+ (void) requestPushPermissionsWithPlugin:(CDVPlugin *)plugin command:(CDVInvokedUrlCommand *)command;
+ (void) getPushPermissionStatusWithPlugin:(CDVPlugin *)plugin command:(CDVInvokedUrlCommand *)command;
+ (void) onMessageReceivedWithPlugin:(CDVPlugin *)plugin command:(CDVInvokedUrlCommand *)command;
+ (void) getTokenWithPlugin:(CDVPlugin *)plugin command:(CDVInvokedUrlCommand *)command;
+ (void) isIndigitallPushNotificationWithPlugin:(CDVPlugin *)plugin command:(CDVInvokedUrlCommand *)command;
+ (void) isPushSecureWithPlugin:(CDVPlugin *)plugin command:(CDVInvokedUrlCommand *)command;

+ (void) sendNotificationWithPlugin:(CDVPlugin *)plugin userInfo:(NSDictionary*)userInfo;
+ (void) onHandleNotificationTapWithPlugin:(CDVPlugin *)plugin userInfo:(NSDictionary*)userInfo;
+ (void) sendTokenWithPlugin:(CDVPlugin *)plugin token:(NSData*)token;
@end
