/* * Copyright (c) 2022 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"), * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { AsyncCallback } from './basic'; import { BundleOption as _BundleOption } from './notification/NotificationCommonDef'; import { NotificationSubscribeInfo as _NotificationSubscribeInfo } from './notification/notificationSubscribeInfo'; import { NotificationSubscriber as _NotificationSubscriber } from './notification/notificationSubscriber'; import { SubscribeCallbackData as _SubscribeCallbackData } from './notification/notificationSubscriber'; import { EnabledNotificationCallbackData as _EnabledNotificationCallbackData } from './notification/notificationSubscriber'; /** * @name notificationSubscribe * @since 9 * @systemapi * @syscap SystemCapability.Notification.Notification * @permission N/A */ declare namespace notificationSubscribe { /** * Describes a NotificationKey, which can be used to identify a notification. * @typedef NotificationKey * @syscap SystemCapability.Notification.Notification * @systemapi * @since 9 */ export interface NotificationKey { id: number; label?: string; } /** * Reason for remove a notification * @enum { number } * @syscap SystemCapability.Notification.Notification * @systemapi * @since 9 */ export enum RemoveReason { /** * Notification clicked notification on the status bar */ CLICK_REASON_REMOVE = 1, /** * User dismissal notification on the status bar */ CANCEL_REASON_REMOVE = 2, } /** * Subscribe to notifications. * @permission ohos.permission.NOTIFICATION_CONTROLLER * @param { NotificationSubscriber } subscriber - The notification subscriber. * @param { AsyncCallback } callback - The callback of subscribe. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Not system application to call the interface. * @throws { BusinessError } 401 - The parameter check failed. * @throws { BusinessError } 1600001 - Internal error. * @throws { BusinessError } 1600002 - Marshalling or unmarshalling error. * @throws { BusinessError } 1600003 - Failed to connect service. * @syscap SystemCapability.Notification.Notification * @systemapi * @since 9 */ function subscribe(subscriber: NotificationSubscriber, callback: AsyncCallback): void; /** * Subscribe to notifications. * @permission ohos.permission.NOTIFICATION_CONTROLLER * @param { NotificationSubscriber } subscriber - The notification subscriber. * @param { NotificationSubscribeInfo } info - The notification subscribe info. * @param { AsyncCallback } callback - The callback of subscribe. * @returns { Promise } The promise returned by the function. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Not system application to call the interface. * @throws { BusinessError } 401 - The parameter check failed. * @throws { BusinessError } 1600001 - Internal error. * @throws { BusinessError } 1600002 - Marshalling or unmarshalling error. * @throws { BusinessError } 1600003 - Failed to connect service. * @syscap SystemCapability.Notification.Notification * @systemapi * @since 9 */ function subscribe(subscriber: NotificationSubscriber, info: NotificationSubscribeInfo, callback: AsyncCallback): void; /** * Subscribe to notifications * @permission ohos.permission.NOTIFICATION_CONTROLLER * @param { NotificationSubscriber } subscriber - The notification subscriber. * @param { NotificationSubscribeInfo } info - The notification subscribe info. * @returns { Promise } The promise returned by the function. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Not system application to call the interface. * @throws { BusinessError } 401 - The parameter check failed. * @throws { BusinessError } 1600001 - Internal error. * @throws { BusinessError } 1600002 - Marshalling or unmarshalling error. * @throws { BusinessError } 1600003 - Failed to connect service. * @syscap SystemCapability.Notification.Notification * @systemapi * @since 9 */ function subscribe(subscriber: NotificationSubscriber, info?: NotificationSubscribeInfo): Promise; /** * Unsubscribe notifications. * @permission ohos.permission.NOTIFICATION_CONTROLLER * @param { NotificationSubscriber } subscriber - The notification subscriber. * @param { AsyncCallback } callback - The callback of unsubscribe. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Not system application to call the interface. * @throws { BusinessError } 401 - The parameter check failed. * @throws { BusinessError } 1600001 - Internal error. * @throws { BusinessError } 1600002 - Marshalling or unmarshalling error. * @throws { BusinessError } 1600003 - Failed to connect service. * @syscap SystemCapability.Notification.Notification * @systemapi * @since 9 */ function unsubscribe(subscriber: NotificationSubscriber, callback: AsyncCallback): void; /** * Unsubscribe notifications. * @permission ohos.permission.NOTIFICATION_CONTROLLER * @param { NotificationSubscriber } subscriber - The notification subscriber. * @returns { Promise } The promise returned by the function. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Not system application to call the interface. * @throws { BusinessError } 401 - The parameter check failed. * @throws { BusinessError } 1600001 - Internal error. * @throws { BusinessError } 1600002 - Marshalling or unmarshalling error. * @throws { BusinessError } 1600003 - Failed to connect service. * @syscap SystemCapability.Notification.Notification * @systemapi * @since 9 */ function unsubscribe(subscriber: NotificationSubscriber): Promise; /** * Remove notification. * @permission ohos.permission.NOTIFICATION_CONTROLLER * @param { BundleOption } bundle - The bundle option. * @param { NotificationKey } notificationKey - The notification key. * @param { RemoveReason } reason - The remove reason. * @param { AsyncCallback } callback - The callback of remove. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Not system application to call the interface. * @throws { BusinessError } 401 - The parameter check failed. * @throws { BusinessError } 1600001 - Internal error. * @throws { BusinessError } 1600002 - Marshalling or unmarshalling error. * @throws { BusinessError } 1600003 - Failed to connect service. * @throws { BusinessError } 1600007 - The notification is not exist. * @throws { BusinessError } 17700001 - The specified bundle name was not found. * @syscap SystemCapability.Notification.Notification * @systemapi * @since 9 */ function remove(bundle: BundleOption, notificationKey: NotificationKey, reason: RemoveReason, callback: AsyncCallback): void; /** * Remove notification. * @permission ohos.permission.NOTIFICATION_CONTROLLER * @param { BundleOption } bundle - The bundle option. * @param { NotificationKey } notificationKey - The notification key. * @param { RemoveReason } reason - The remove reason. * @returns { Promise } The promise returned by the function. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Not system application to call the interface. * @throws { BusinessError } 401 - The parameter check failed. * @throws { BusinessError } 1600001 - Internal error. * @throws { BusinessError } 1600002 - Marshalling or unmarshalling error. * @throws { BusinessError } 1600003 - Failed to connect service. * @throws { BusinessError } 1600007 - The notification is not exist. * @throws { BusinessError } 17700001 - The specified bundle name was not found. * @syscap SystemCapability.Notification.Notification * @systemapi * @since 9 */ function remove(bundle: BundleOption, notificationKey: NotificationKey, reason: RemoveReason): Promise; /** * Remove notification. * @permission ohos.permission.NOTIFICATION_CONTROLLER * @param { string } hashCode - The hashCode. * @param { RemoveReason } reason - The remove reason. * @param { AsyncCallback } callback - The callback of remove. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Not system application to call the interface. * @throws { BusinessError } 401 - The parameter check failed. * @throws { BusinessError } 1600001 - Internal error. * @throws { BusinessError } 1600002 - Marshalling or unmarshalling error. * @throws { BusinessError } 1600003 - Failed to connect service. * @throws { BusinessError } 1600007 - The notification is not exist. * @syscap SystemCapability.Notification.Notification * @systemapi * @since 9 */ function remove(hashCode: string, reason: RemoveReason, callback: AsyncCallback): void; /** * Remove notification. * @permission ohos.permission.NOTIFICATION_CONTROLLER * @param { string } hashCode - The hashCode. * @param { RemoveReason } reason - The remove reason. * @returns { Promise } The promise returned by the function. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Not system application to call the interface. * @throws { BusinessError } 401 - The parameter check failed. * @throws { BusinessError } 1600001 - Internal error. * @throws { BusinessError } 1600002 - Marshalling or unmarshalling error. * @throws { BusinessError } 1600003 - Failed to connect service. * @throws { BusinessError } 1600007 - The notification is not exist. * @syscap SystemCapability.Notification.Notification * @systemapi * @since 9 */ function remove(hashCode: string, reason: RemoveReason): Promise; /** * RemoveAll all notifications. * @permission ohos.permission.NOTIFICATION_CONTROLLER * @param { BundleOption } bundle - The bundle option. * @param { AsyncCallback } callback - The callback of removeAll. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Not system application to call the interface. * @throws { BusinessError } 401 - The parameter check failed. * @throws { BusinessError } 1600001 - Internal error. * @throws { BusinessError } 1600002 - Marshalling or unmarshalling error. * @throws { BusinessError } 1600003 - Failed to connect service. * @throws { BusinessError } 17700001 - The specified bundle name was not found. * @syscap SystemCapability.Notification.Notification * @systemapi * @since 9 */ function removeAll(bundle: BundleOption, callback: AsyncCallback): void; /** * RemoveAll all notifications. * @permission ohos.permission.NOTIFICATION_CONTROLLER * @param { AsyncCallback } callback - The callback of removeAll. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Not system application to call the interface. * @throws { BusinessError } 401 - The parameter check failed. * @throws { BusinessError } 1600001 - Internal error. * @throws { BusinessError } 1600002 - Marshalling or unmarshalling error. * @throws { BusinessError } 1600003 - Failed to connect service. * @syscap SystemCapability.Notification.Notification * @systemapi * @since 9 */ function removeAll(callback: AsyncCallback): void; /** * Remove all notifications under the specified user. * @permission ohos.permission.NOTIFICATION_CONTROLLER * @param { number } userId - The userId. * @param { AsyncCallback } callback - The callback of removeAll. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Not system application to call the interface. * @throws { BusinessError } 401 - The parameter check failed. * @throws { BusinessError } 1600001 - Internal error. * @throws { BusinessError } 1600002 - Marshalling or unmarshalling error. * @throws { BusinessError } 1600003 - Failed to connect service. * @throws { BusinessError } 1600008 - The user is not exist. * @syscap SystemCapability.Notification.Notification * @systemapi * @since 9 */ function removeAll(userId: number, callback: AsyncCallback): void; /** * Remove all notifications under the specified user. * @permission ohos.permission.NOTIFICATION_CONTROLLER * @param { number } userId - The userId. * @returns { Promise } The promise returned by the function. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Not system application to call the interface. * @throws { BusinessError } 401 - The parameter check failed. * @throws { BusinessError } 1600001 - Internal error. * @throws { BusinessError } 1600002 - Marshalling or unmarshalling error. * @throws { BusinessError } 1600003 - Failed to connect service. * @throws { BusinessError } 1600008 - The user is not exist. * @syscap SystemCapability.Notification.Notification * @systemapi * @since 9 */ function removeAll(userId: number): Promise; /** * RemoveAll all notifications. * @permission ohos.permission.NOTIFICATION_CONTROLLER * @param { BundleOption } bundle - The bundle option. * @returns { Promise } The promise returned by the function. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Not system application to call the interface. * @throws { BusinessError } 401 - The parameter check failed. * @throws { BusinessError } 1600001 - Internal error. * @throws { BusinessError } 1600002 - Marshalling or unmarshalling error. * @throws { BusinessError } 1600003 - Failed to connect service. * @throws { BusinessError } 17700001 - The specified bundle name was not found. * @syscap SystemCapability.Notification.Notification * @systemapi * @since 9 */ function removeAll(bundle?: BundleOption): Promise; /** * Describes a bundleOption in a notification. * @syscap SystemCapability.Notification.Notification * @since 9 */ export type BundleOption = _BundleOption /** * Sets filter criteria of publishers for subscribing to desired notifications. * @syscap SystemCapability.Notification.Notification * @systemapi * @since 9 */ export type NotificationSubscribeInfo = _NotificationSubscribeInfo /** * Provides methods that will be called back when the subscriber receives a new notification or * a notification is canceled. * @syscap SystemCapability.Notification.Notification * @systemapi * @since 9 */ export type NotificationSubscriber = _NotificationSubscriber /** * Provides methods that will be called back when the subscriber receives a new notification or * a notification is canceled. * @syscap SystemCapability.Notification.Notification * @systemapi * @since 9 */ export type SubscribeCallbackData = _SubscribeCallbackData /** * Describes the properties of the application that the permission to send notifications has changed. * @syscap SystemCapability.Notification.Notification * @systemapi * @since 9 */ export type EnabledNotificationCallbackData = _EnabledNotificationCallbackData } export default notificationSubscribe;