From c6713862c596dac5f32b10eef08a6192882ff3ad Mon Sep 17 00:00:00 2001
From: Jan Piotrowski <piotrowski+github@gmail.com>
Date: Sun, 29 Jul 2018 09:10:48 +0200
Subject: [PATCH 1/3] refactor: Improve Ionic Native warnings (#2611)

- Explicitly spell out that this is coming from "Ionic Native", instead of just "Native"
- Improve sentence that explains 2 most common reasons for missing Cordova
---
 src/@ionic-native/core/util.ts | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/@ionic-native/core/util.ts b/src/@ionic-native/core/util.ts
index 835771d7f..7a8d950c9 100644
--- a/src/@ionic-native/core/util.ts
+++ b/src/@ionic-native/core/util.ts
@@ -53,7 +53,7 @@ export const pluginWarn = (
 ): void => {
   if (method) {
     console.warn(
-      'Native: tried calling ' +
+      'Ionic Native: tried calling ' +
         pluginName +
         '.' +
         method +
@@ -63,12 +63,12 @@ export const pluginWarn = (
     );
   } else {
     console.warn(
-      `'Native: tried accessing the ${pluginName} plugin but it's not installed.`
+      `'Ionic Native: tried accessing the ${pluginName} plugin but it's not installed.`
     );
   }
   if (plugin) {
     console.warn(
-      `Install the ${pluginName}  plugin: 'ionic cordova plugin add ${plugin}'`
+      `Install the ${pluginName} plugin: 'ionic cordova plugin add ${plugin}'`
     );
   }
 };
@@ -81,17 +81,17 @@ export const pluginWarn = (
 export const cordovaWarn = (pluginName: string, method?: string): void => {
   if (method) {
     console.warn(
-      'Native: tried calling ' +
+      'Ionic Native: tried calling ' +
         pluginName +
         '.' +
         method +
-        ', but Cordova is not available. Make sure to include cordova.js or run in a device/simulator'
+        ', but Cordova is not available. Make sure to a) run in a real device or simulator and b) include cordova.js in your index.html'
     );
   } else {
     console.warn(
       'Native: tried accessing the ' +
         pluginName +
-        ' plugin but Cordova is not available. Make sure to include cordova.js or run in a device/simulator'
+        ' plugin but Cordova is not available. Make sure to a) run in a real device or simulator and b) include cordova.js in your index.html'
     );
   }
 };

From bd5bd7ea9df69676a837853c532fbb9613bfd247 Mon Sep 17 00:00:00 2001
From: Ashwin Dinesh <ashwin.dinesh01@gmail.com>
Date: Sun, 29 Jul 2018 12:41:05 +0530
Subject: [PATCH 2/3] feat(webengage): add webengage plugin (#2604)

* feat(webengage): add webengage plugin

* refactor
---
 src/@ionic-native/plugins/webengage/index.ts | 201 +++++++++++++++++++
 1 file changed, 201 insertions(+)
 create mode 100644 src/@ionic-native/plugins/webengage/index.ts

diff --git a/src/@ionic-native/plugins/webengage/index.ts b/src/@ionic-native/plugins/webengage/index.ts
new file mode 100644
index 000000000..3ff3da34c
--- /dev/null
+++ b/src/@ionic-native/plugins/webengage/index.ts
@@ -0,0 +1,201 @@
+import { Injectable } from '@angular/core';
+import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
+
+/**
+ * @name Webengage
+ * @description
+ * Ionic-Native wrapper that wraps Webengage Cordova plugin for Android and iOS
+ *
+ * @usage
+ * ```typescript
+ * import { Webengage, WebengageUser, WebengagePush, WebengageNotification } from '@ionic-native/webengage';
+ *
+ *
+ * constructor(private webengage: Webengage, private webengageUser: WebengageUser, private webengagePush: WebengagePush, private webengageNotification: WebengageNotification ) { }
+ *
+ * ...
+ *
+ * this.webengage.engage();
+ * ```
+ */
+@Plugin({
+  pluginName: 'Webengage',
+  plugin: 'cordova-plugin-webengage',
+  pluginRef: 'webengage',
+  repo: 'https://github.com/WebEngage/cordova-plugin',
+  install: '',
+  installVariables: [],
+  platforms: ['Android', 'iOS']
+})
+@Injectable()
+export class Webengage extends IonicNativePlugin {
+  /**
+   * Initializes WebEngage SDK
+   * @return {Promise<any>}
+   */
+  @Cordova()
+  engage(): Promise<any> {
+    return;
+  }
+
+  /**
+   * Sets WebEngage SDK configuration
+   * @param {string} key
+   * @param {any} value
+   * @return {Promise<any>}
+   */
+  @Cordova()
+  options(key: string, value: any): Promise<any> {
+    return;
+  }
+
+  /**
+   * Tracks event
+   * @param {string} eventName
+   * @param {any} attributes
+   * @return {Promise<any>}
+   */
+  @Cordova()
+  track(eventName: string, attributes: any): Promise<any> {
+    return;
+  }
+
+  /**
+   * Tracks screen
+   * @param {string} eventName
+   * @param {any} screenData
+   * @return {Promise<any>}
+   */
+  @Cordova()
+  screen(screenName: string, screenData: any): Promise<any> {
+    return;
+  }
+}
+
+@Plugin({
+  pluginName: 'Webengage',
+  plugin: 'cordova-plugin-webengage',
+  pluginRef: 'webengage.user',
+  repo: 'https://github.com/WebEngage/cordova-plugin',
+  install: '',
+  installVariables: [],
+  platforms: ['Android', 'iOS']
+})
+@Injectable()
+export class WebengageUser extends IonicNativePlugin {
+  /**
+   * Logs user in
+   * @param {string} userId
+   * @return {Promise<any>}
+   */
+  @Cordova()
+  login(userId: string): Promise<any> {
+    return;
+  }
+
+  /**
+   * Logs user out
+   * @return {Promise<any>}
+   */
+  @Cordova()
+  logout(): Promise<any> {
+    return;
+  }
+
+  /**
+   * Sets user attribute
+   * @param {string} key
+   * @param {any} value
+   * @return {Promise<any>}
+   */
+  @Cordova()
+  setAttribute(key: string, value: any): Promise<any> {
+    return;
+  }
+}
+
+@Plugin({
+  pluginName: 'Webengage',
+  plugin: 'cordova-plugin-webengage',
+  pluginRef: 'webengage.push',
+  repo: 'https://github.com/WebEngage/cordova-plugin',
+  install: '',
+  installVariables: [],
+  platforms: ['Android', 'iOS']
+})
+@Injectable()
+export class WebengagePush extends IonicNativePlugin {
+  /**
+   * Callback function is invoked when a push notification is clicked
+   * @param {any} callback
+   * @return {Promise<any>}
+   */
+  @Cordova()
+  onClick(callback: any): Promise<any> {
+    return;
+  }
+
+  /**
+   * Sets push notification configuration
+   * @param {string} key
+   * @param {any} value
+   * @return {Promise<any>}
+   */
+  @Cordova()
+  options(key: string, value: any): Promise<any> {
+    return;
+  }
+}
+
+@Plugin({
+  pluginName: 'Webengage',
+  plugin: 'cordova-plugin-webengage',
+  pluginRef: 'webengage.notification',
+  repo: 'https://github.com/WebEngage/cordova-plugin',
+  install: '',
+  installVariables: [],
+  platforms: ['Android', 'iOS']
+})
+@Injectable()
+export class WebengageNotification extends IonicNativePlugin {
+  /**
+   * Callback function is invoked when a in-app notification is shown
+   * @param {any} callback
+   * @return {Promise<any>}
+   */
+  @Cordova()
+  onShown(callback: any): Promise<any> {
+    return;
+  }
+
+  /**
+   * Callback function is invoked when a in-app notification is clicked
+   * @param {any} callback
+   * @return {Promise<any>}
+   */
+  @Cordova()
+  onClick(callback: any): Promise<any> {
+    return;
+  }
+
+  /**
+   * Callback function is invoked when a in-app notification is dismissed
+   * @param {any} callback
+   * @return {Promise<any>}
+   */
+  @Cordova()
+  onDismiss(callback: any): Promise<any> {
+    return;
+  }
+
+  /**
+   * Sets in-app notification configuration
+   * @param {string} key
+   * @param {any} value
+   * @return {Promise<any>}
+   */
+  @Cordova()
+  options(key: string, value: any): Promise<any> {
+    return;
+  }
+}

From 27d380ef4b8fda754bd05a3b57f2a814a80f8f97 Mon Sep 17 00:00:00 2001
From: pwilkniss <pwilkniss@users.noreply.github.com>
Date: Sun, 29 Jul 2018 00:13:37 -0700
Subject: [PATCH 3/3] feat(clevertap): add CleverTap plugin (#2609)

* feat(clevertap): add CleverTap plugin

* style(clevertap): cleanup stray lint error

* refactor
---
 src/@ionic-native/plugins/clevertap/index.ts | 592 +++++++++++++++++++
 1 file changed, 592 insertions(+)
 create mode 100644 src/@ionic-native/plugins/clevertap/index.ts

diff --git a/src/@ionic-native/plugins/clevertap/index.ts b/src/@ionic-native/plugins/clevertap/index.ts
new file mode 100644
index 000000000..cb2bf0cb5
--- /dev/null
+++ b/src/@ionic-native/plugins/clevertap/index.ts
@@ -0,0 +1,592 @@
+import { Injectable } from '@angular/core';
+import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
+
+declare var clevertap: any;
+
+/**
+ * @name CleverTap
+ * @description
+ * Cordova Plugin that wraps CleverTap SDK for Android and iOS
+ *
+ * @usage
+ * ```typescript
+ * import { CleverTap } from '@ionic-native/clevertap';
+
+ * constructor(private clevertap: CleverTap) { }
+ *
+ * ```
+ */
+@Plugin({
+  pluginName: 'CleverTap',
+  plugin: 'clevertap-cordova',
+  pluginRef: 'CleverTap',
+  repo: 'https://github.com/CleverTap/clevertap-cordova',
+  platforms: ['Android', 'iOS']
+})
+@Injectable()
+export class CleverTap extends IonicNativePlugin {
+  /**
+   * notify device ready
+   * NOTE: in iOS use to be notified of launch Push Notification or Deep Link
+   * in Android use only in android phonegap build projects
+   * @returns {Promise<any>}
+   */
+  @Cordova()
+  notifyDeviceReady(): Promise<any> {
+    return;
+  }
+
+  /*******************
+   * Personalization
+   ******************/
+
+  /**
+   * Personalization
+   * Enables the Personalization API
+   * @returns {Promise<any>}
+   */
+  @Cordova()
+  enablePersonalization(): Promise<any> {
+    return;
+  }
+
+  /**
+   * Enables tracking opt out for the currently active user.
+   * @param optOut {boolean}
+   * @returns {Promise<any>}
+   */
+  @Cordova()
+  setOptOut(optOut: boolean): Promise<any> {
+    return;
+  }
+
+  /**
+   * Enables the reporting of device network related information, including IP address.  This reporting is disabled by default.
+   * @param enable {boolean}
+   * @returns {Promise<any>}
+   */
+  @Cordova()
+  enableDeviceNetworkInfoReporting(enable: boolean): Promise<any> {
+    return;
+  }
+
+  /*******************
+   * Push
+   ******************/
+
+  /**
+   * Registers for push notifications
+   * @returns {Promise<any>}
+   */
+  @Cordova()
+  registerPush(): Promise<any> {
+    return;
+  }
+
+  /**
+   * Sets the device's push token
+   * @param token {string}
+   * @returns {Promise<any>}
+   */
+  @Cordova()
+  setPushToken(token: string): Promise<any> {
+    return;
+  }
+
+  /**
+   * Create Notification Channel for Android O+
+   * @param channelID {string}
+   * @param channelName {string}
+   * @param channelDescription {string}
+   * @param importance {number}
+   * @param showBadge {boolean}
+   * @returns {Promise<any>}
+   */
+  @Cordova()
+  createNotificationChannel(
+    channelID: string,
+    channelName: string,
+    channelDescription: string,
+    importance: number,
+    showBadge: boolean
+  ): Promise<any> {
+    return;
+  }
+
+  /**
+   * Create Notification Channel for Android O+
+   * @param channelID {string}
+   * @param channelName {string}
+   * @param channelDescription {string}
+   * @param importance {number}
+   * @param showBadge {boolean}
+   * @param sound {string}
+   * @returns {Promise<any>}
+   */
+  @Cordova()
+  createNotificationChannelWithSound(
+    channelID: string,
+    channelName: string,
+    channelDescription: string,
+    importance: number,
+    showBadge: boolean,
+    sound: string
+  ): Promise<any> {
+    return;
+  }
+
+  /**
+   * Create Notification Channel with Group ID for Android O+
+   * @param channelID {string}
+   * @param channelName {string}
+   * @param channelDescription {string}
+   * @param importance {number}
+   * @param groupId {string}
+   * @param showBadge {boolean}
+   * @param sound {string}
+   * @returns {Promise<any>}
+   */
+  @Cordova()
+  createNotificationChannelWithGroupId(
+    channelID: string,
+    channelName: string,
+    channelDescription: string,
+    importance: number,
+    groupId: string,
+    showBadge: boolean
+  ): Promise<any> {
+    return;
+  }
+
+  /**
+   * Create Notification Channel with Group ID for Android O+
+   * @param channelID {string}
+   * @param channelName {string}
+   * @param channelDescription {string}
+   * @param importance {number}
+   * @param groupId {string}
+   * @param showBadge {boolean}
+   * @returns {Promise<any>}
+   */
+  @Cordova()
+  createNotificationChannelWithGroupIdAndSound(
+    channelID: string,
+    channelName: string,
+    channelDescription: string,
+    importance: number,
+    groupId: string,
+    showBadge: boolean,
+    sound: string
+  ): Promise<any> {
+    return;
+  }
+
+  /**
+   * Create Notification Channel Group for Android O+
+   * @param groupID {string}
+   * @param groupName {string}
+   * @returns {Promise<any>}
+   */
+  @Cordova()
+  createNotificationChannelGroup(
+    groupID: string,
+    groupName: string
+  ): Promise<any> {
+    return;
+  }
+
+  /**
+   * Delete Notification Channel for Android O+
+   * @param channelID {string}
+   * @returns {Promise<any>}
+   */
+  @Cordova()
+  deleteNotificationChannel(channelID: string): Promise<any> {
+    return;
+  }
+
+  /**
+   * Delete Notification Group for Android O+
+   * @param groupID {string}
+   * @returns {Promise<any>}
+   */
+  @Cordova()
+  deleteNotificationChannelGroup(groupID: string): Promise<any> {
+    return;
+  }
+
+  /*******************
+   * Events
+   ******************/
+
+  /**
+   * Record Screen View
+   * @param screenName {string}
+   * @returns {Promise<any>}
+   */
+  @Cordova()
+  recordScreenView(screenName: string): Promise<any> {
+    return;
+  }
+
+  /**
+   * Record Event with Name
+   * @param eventName {string}
+   * @returns {Promise<any>}
+   */
+  @Cordova()
+  recordEventWithName(eventName: string): Promise<any> {
+    return;
+  }
+
+  /**
+   *  Record Event with Name and Event properties
+   * @param eventName {string}
+   * @param eventProps {any}
+   * @returns {Promise<any>}
+   */
+  @Cordova()
+  recordEventWithNameAndProps(
+    eventName: string,
+    eventProps: any
+  ): Promise<any> {
+    return;
+  }
+
+  /**
+   *  Record Charged Event with Details and Items
+   * @param details {any}  object with transaction details
+   * @param items {any}  array of items purchased
+   * @returns {Promise<any>}
+   */
+  @Cordova()
+  recordChargedEventWithDetailsAndItems(
+    details: any,
+    items: any
+  ): Promise<any> {
+    return;
+  }
+
+  /**
+   * Get Event First Time
+   * @param eventName {string}
+   * callback returns epoch seconds or -1
+   * @returns {Promise<any>}
+   */
+  @Cordova()
+  eventGetFirstTime(eventName: string): Promise<any> {
+    return;
+  }
+
+  /**
+   * Get Event Last Time
+   * @param eventName {string}
+   * callback returns epoch seconds or -1
+   * @returns {Promise<any>}
+   */
+  @Cordova()
+  eventGetLastTime(eventName: string): Promise<any> {
+    return;
+  }
+
+  /**
+   * Get Event Number of Occurrences
+   * @param eventName {string}
+   * calls back with int or -1
+   * @returns {Promise<any>}
+   */
+  @Cordova()
+  eventGetOccurrences(eventName: string): Promise<any> {
+    return;
+  }
+
+  /**
+   * Get Event Details
+   * @param eventName {string}
+   * calls back with object {"eventName": <string>, "firstTime":<epoch seconds>, "lastTime": <epoch seconds>, "count": <int>} or empty object
+   * @returns {Promise<any>}
+   */
+  @Cordova()
+  eventGetDetails(eventName: string): Promise<any> {
+    return;
+  }
+
+  /**
+   * Get Event History
+   * calls back with object {"eventName1":<event1 details object>, "eventName2":<event2 details object>}
+   * @returns {Promise<any>}
+   */
+  @Cordova()
+  getEventHistory(): Promise<any> {
+    return;
+  }
+
+  /*******************
+   * Profiles
+   ******************/
+
+  /**
+   * Get the device location if available.
+   * On iOS:
+   * Calling this will prompt the user location permissions dialog.
+   * Please be sure to include the NSLocationWhenInUseUsageDescription key in your Info.plist.
+   * Uses desired accuracy of kCLLocationAccuracyHundredMeters.
+   * If you need background location updates or finer accuracy please implement your own location handling.
+   * On Android:
+   * Requires Location Permission in AndroidManifest e.g. "android.permission.ACCESS_COARSE_LOCATION"
+   * You can use location to pass it to CleverTap via the setLocation API
+   * for, among other things, more fine-grained geo-targeting and segmentation purposes.
+   * Note: on iOS the call to CleverTapSDK must be made on the main thread due to LocationManager restrictions, but the CleverTapSDK method itself is non-blocking.
+   * calls back with {lat:lat, lon:lon} lat and lon are floats
+   * @returns {Promise<any>}
+   */
+  @Cordova()
+  getLocation(): Promise<any> {
+    return;
+  }
+
+  /**
+   * Set location
+   * @param lat {number}
+   * @param lon {number}
+   * @returns {Promise<any>}
+   */
+  @Cordova()
+  setLocation(lat: number, lon: number): Promise<any> {
+    return;
+  }
+
+  /**
+   * Creates a separate and distinct user profile identified by one or more of Identity, Email, FBID or GPID values,
+   * and populated with the key-values included in the profile dictionary.
+   * If your app is used by multiple users, you can use this method to assign them each a unique profile to track them separately.
+   * If instead you wish to assign multiple Identity, Email, FBID and/or GPID values to the same user profile,
+   * use profileSet rather than this method.
+   * If none of Identity, Email, FBID or GPID is included in the profile dictionary,
+   * all properties values will be associated with the current user profile.
+   * When initially installed on this device, your app is assigned an "anonymous" profile.
+   * The first time you identify a user on this device (whether via onUserLogin or profileSet),
+   * the "anonymous" history on the device will be associated with the newly identified user.
+   * Then, use this method to switch between subsequent separate identified users.
+   * Please note that switching from one identified user to another is a costly operation
+   * in that the current session for the previous user is automatically closed
+   * and data relating to the old user removed, and a new session is started
+   * for the new user and data for that user refreshed via a network call to CleverTap.
+   * In addition, any global frequency caps are reset as part of the switch.
+   * @param profile {any} object
+   * @returns {Promise<any>}
+   */
+  @Cordova()
+  onUserLogin(profile: any): Promise<any> {
+    return;
+  }
+
+  /**
+   * Set profile attributes
+   * @param profile {any} object
+   * @returns {Promise<any>}
+   */
+  @Cordova()
+  profileSet(profile: any): Promise<any> {
+    return;
+  }
+
+  /**
+   * Set profile attributes from facebook user
+   * @param profile {any} facebook graph user object
+   * @returns {Promise<any>}
+   */
+  @Cordova()
+  profileSetGraphUser(profile: any): Promise<any> {
+    return;
+  }
+
+  /**
+   * Set profile attributes rom google plus user
+   * @param profile {any} google plus user object
+   * @returns {Promise<any>}
+   */
+  @Cordova()
+  profileGooglePlusUser(profile: any): Promise<any> {
+    return;
+  }
+
+  /**
+   * Get User Profile Property
+   * @param propertyName {string}
+   * calls back with value of propertyName or false
+   * @returns {Promise<any>}
+   */
+  @Cordova()
+  profileGetProperty(propertyName: string): Promise<any> {
+    return;
+  }
+
+  /**
+   * Get a unique CleverTap identifier suitable for use with install attribution providers.
+   * calls back with unique CleverTap attribution identifier
+   * @returns {Promise<any>}
+   */
+  @Cordova()
+  profileGetCleverTapAttributionIdentifier(): Promise<any> {
+    return;
+  }
+
+  /**
+   * Get User Profile CleverTapID
+   * calls back with CleverTapID or false
+   * @returns {Promise<any>}
+   */
+  @Cordova()
+  profileGetCleverTapID(): Promise<any> {
+    return;
+  }
+
+  /**
+   * Remove the property specified by key from the user profile
+   * @param key {string}
+   * @returns {Promise<any>}
+   */
+  @Cordova()
+  profileRemoveValueForKey(key: string): Promise<any> {
+    return;
+  }
+
+  /**
+   * Method for setting a multi-value user profile property
+   * @param key {string}
+   * @param values {any} array of strings
+   * @returns {Promise<any>}
+   */
+  @Cordova()
+  profileSetMultiValues(key: string, values: any): Promise<any> {
+    return;
+  }
+
+  /**
+   * Method for adding a value to a multi-value user profile property
+   * @param key {string}
+   * @param value {string}
+   * @returns {Promise<any>}
+   */
+  @Cordova()
+  profileAddMultiValue(key: string, value: string): Promise<any> {
+    return;
+  }
+
+  /**
+   * Method for adding values to a multi-value user profile property
+   * @param key {string}
+   * @param values {any} array of strings
+   * @returns {Promise<any>}
+   */
+  @Cordova()
+  profileAddMultiValues(key: string, values: any): Promise<any> {
+    return;
+  }
+
+  /**
+   * Method for removing a value from a multi-value user profile property
+   * @param key {string}
+   * @param value {string}
+   * @returns {Promise<any>}
+   */
+  @Cordova()
+  profileRemoveMultiValue(key: string, value: string): Promise<any> {
+    return;
+  }
+
+  /**
+   * Method for removing a value from a multi-value user profile property
+   * @param key {string}
+   * @param values {any} array of strings
+   * @returns {Promise<any>}
+   */
+  @Cordova()
+  profileRemoveMultiValues(key: string, values: any): Promise<any> {
+    return;
+  }
+
+  /*******************
+   * Session
+   ******************/
+
+  /**
+   * Get Session Elapsed Time
+   * calls back with seconds
+   * @returns {Promise<any>}
+   */
+  @Cordova()
+  sessionGetTimeElapsed(): Promise<any> {
+    return;
+  }
+
+  /**
+   * Get Session Total Visits
+   * calls back with with int or -1
+   * @returns {Promise<any>}
+   */
+  @Cordova()
+  sessionGetTotalVisits(): Promise<any> {
+    return;
+  }
+
+  /**
+   * Get Session Screen Count
+   * calls back with with int
+   * @returns {Promise<any>}
+   */
+  @Cordova()
+  sessionGetScreenCount(): Promise<any> {
+    return;
+  }
+
+  /**
+   * Get Session Previous Visit Time
+   * calls back with with epoch seconds or -1
+   * @returns {Promise<any>}
+   */
+  @Cordova()
+  sessionGetPreviousVisitTime(): Promise<any> {
+    return;
+  }
+
+  /**
+   * Get Sesssion Referrer UTM details
+   * object {"source": <string>, "medium": <string>, "campaign": <string>} or empty object
+   * @returns {Promise<any>}
+   */
+  @Cordova()
+  sessionGetUTMDetails(): Promise<any> {
+    return;
+  }
+
+  /**
+   * Call this to manually track the utm details for an incoming install referrer
+   * @param source {string}
+   * @param medium {string}
+   * @param campaign {string}
+   * @returns {Promise<any>}
+   */
+  @Cordova()
+  pushInstallReferrer(
+    source: string,
+    medium: string,
+    campaign: string
+  ): Promise<any> {
+    return;
+  }
+
+  /*******************
+   * Developer Options
+   ******************/
+  /**
+   * 0 is off, 1 is info, 2 is debug, default is 1
+   * @param level {number}
+   * @returns {Promise<any>}
+   */
+  @Cordova()
+  setDebugLevel(level: number): Promise<any> {
+    return;
+  }
+}