import { Service } from '../Core/index';
import { NotifiableDeviceRegistration, NotificationMessage, NotificationSendStatus } from './NotifTypes';
/**
* Push Notifications
*
* Native Push Notifications for Android, iOS
*
*
*
* */
export declare class Notif extends Service {
/**
* Get deployment type associated to Notif service
* @return {string}
*/
static readonly DEPLOYMENT_TYPE: string;
/**
* Get default deployment id associated to Notif service
* @return {string}
*/
static readonly DEFAULT_DEPLOYMENT_ID: string;
/**
* Notification User API
*
* User API for notifications.
* For notifications to work properly, it is imperative that the resource name of a device remain constant over time.
* @access public
* */
/**
* Registers a device
*
* Registers the device for the current user and resource.
* This service maintains a mapping of __userkey/__resource to device registration IDs.
* You MUST NOT re-use the same resource name from one device to another if you want to target specific devices with 'send'.
* Only one registration can be active for a given __userKey/__resource pair in a notification service.
* Device registration can be neither impersonated nor called indirectly (from a scheduled job).
* @access public
* */
register(body: NotifiableDeviceRegistration): void;
/**
* Sends a notification to the target
*
* Sends a native push notification to the target.
* @access public
* */
send(body: NotificationMessage): Promise;
/**
* Unregisters a device
*
* Unregisters the device for the current user and resource.
* This verb does not need any parameters.
* @access public
* */
unregister(): void;
}