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

NS_ASSUME_NONNULL_BEGIN

@interface CDVIndigitall : CDVPlugin

- (void) initialize: (CDVInvokedUrlCommand *)command;
- (void) deviceGet: (CDVInvokedUrlCommand *)command;
- (void) deviceEnable: (CDVInvokedUrlCommand *)command;
- (void) deviceDisable: (CDVInvokedUrlCommand *)command;
- (void) topicsList: (CDVInvokedUrlCommand *)command;
- (void) topicsSubscribe: (CDVInvokedUrlCommand *)command;
- (void) topicsUnsubscribe: (CDVInvokedUrlCommand *)command;
- (void) setExternalCode: (CDVInvokedUrlCommand *)command;
- (void) sendCustomEvent: (CDVInvokedUrlCommand *)command;
- (void) packageName:(CDVInvokedUrlCommand *)command;
- (void) getPush: (CDVInvokedUrlCommand *)command;
- (void) onIndigitallGetPush: (CDVInvokedUrlCommand *)command;
- (void) setDefaultViewUrl:(CDVInvokedUrlCommand *)command;
- (void) clearViewUrl:(CDVInvokedUrlCommand *)command;
- (void) logIn: (CDVInvokedUrlCommand *)command;
- (void) logOut: (CDVInvokedUrlCommand *)command;
- (void) requestPushPermissions: (CDVInvokedUrlCommand *)command;
- (void) getPushPermissionStatus: (CDVInvokedUrlCommand *)command;
- (void) onMessageReceived: (CDVInvokedUrlCommand *)command;
- (void) getToken: (CDVInvokedUrlCommand *)command;
- (void) isIndigitallPushNotification: (CDVInvokedUrlCommand *)command;
- (void) isPushSecure: (CDVInvokedUrlCommand *)command;

- (void) sendNotification:(NSDictionary*)userInfo;
- (void) onHandleNotificationTap: (NSDictionary*)userInfo;
- (void) sendToken:(NSData*)token;

+ (CDVIndigitall *) cdvIndigitallPlugin;
@property (nonatomic, copy) NSString *tokenRefreshCallbackId;
@property (nonatomic, copy) NSString *notificationCallbackId;
@property (nonatomic, copy) NSString *getOnIndigitallPushCallbackId;



@end

NS_ASSUME_NONNULL_END
