/* * Copyright (c) 2022-2023 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. */ /** * @file * @kit NotificationKit */ import { AsyncCallback } from './@ohos.base'; 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'; import type { BadgeNumberCallbackData as _BadgeNumberCallbackData } from './notification/notificationSubscriber'; /** * @namespace notificationSubscribe * @syscap SystemCapability.Notification.Notification * @systemapi * @since 9 */ 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 { /** * Notify ID. * * @type { number } * @syscap SystemCapability.Notification.Notification * @systemapi * @since 9 */ id: number; /** * Notification label. * * @type { ?string } * @syscap SystemCapability.Notification.Notification * @systemapi * @since 9 */ 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 * * @syscap SystemCapability.Notification.Notification * @systemapi * @since 9 */ CLICK_REASON_REMOVE = 1, /** * User dismissal notification on the status bar * * @syscap SystemCapability.Notification.Notification * @systemapi * @since 9 */ 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 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. *
2. Incorrect parameter types. 3. Parameter verification failed. * @throws { BusinessError } 1600001 - Internal error. * @throws { BusinessError } 1600002 - Marshalling or unmarshalling error. * @throws { BusinessError } 1600003 - Failed to connect to the service. * @throws { BusinessError } 1600012 - No memory space. * @syscap SystemCapability.Notification.Notification * @systemapi * @since 9 */ function subscribe(subscriber: NotificationSubscriber, callback: AsyncCallback): void; /** * Subscribe self notifications. * * @param { NotificationSubscriber } subscriber - The notification subscriber. * @returns { Promise } The promise returned by the function. * @throws { BusinessError } 202 - Not system application to call the interface. * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. *
2. Incorrect parameter types. 3. Parameter verification failed. * @throws { BusinessError } 1600001 - Internal error. * @throws { BusinessError } 1600002 - Marshalling or unmarshalling error. * @throws { BusinessError } 1600003 - Failed to connect to the service. * @throws { BusinessError } 1600012 - No memory space. * @syscap SystemCapability.Notification.Notification * @systemapi * @since 11 */ function subscribeSelf(subscriber: NotificationSubscriber): Promise; /** * 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. * @throws { BusinessError } 201 - Permission denied. * @throws { BusinessError } 202 - Not system application to call the interface. * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. *
2. Incorrect parameter types. 3. Parameter verification failed. * @throws { BusinessError } 1600001 - Internal error. * @throws { BusinessError } 1600002 - Marshalling or unmarshalling error. * @throws { BusinessError } 1600003 - Failed to connect to the service. * @throws { BusinessError } 1600012 - No memory space. * @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 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. *
2. Incorrect parameter types. 3. Parameter verification failed. * @throws { BusinessError } 1600001 - Internal error. * @throws { BusinessError } 1600002 - Marshalling or unmarshalling error. * @throws { BusinessError } 1600003 - Failed to connect to the service. * @throws { BusinessError } 1600012 - No memory space. * @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 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. *
2. Incorrect parameter types. 3. Parameter verification failed. * @throws { BusinessError } 1600001 - Internal error. * @throws { BusinessError } 1600002 - Marshalling or unmarshalling error. * @throws { BusinessError } 1600003 - Failed to connect to the 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 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. *
2. Incorrect parameter types. 3. Parameter verification failed. * @throws { BusinessError } 1600001 - Internal error. * @throws { BusinessError } 1600002 - Marshalling or unmarshalling error. * @throws { BusinessError } 1600003 - Failed to connect to the service. * @syscap SystemCapability.Notification.Notification * @systemapi * @since 9 */ function unsubscribe(subscriber: NotificationSubscriber): Promise; /** * Remove notification based on BundleOption and NotificationKey. * * @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 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. *
2. Incorrect parameter types. 3. Parameter verification failed. * @throws { BusinessError } 1600001 - Internal error. * @throws { BusinessError } 1600002 - Marshalling or unmarshalling error. * @throws { BusinessError } 1600003 - Failed to connect to the service. * @throws { BusinessError } 1600007 - The notification does 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 based on BundleOption and NotificationKey. * * @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 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. *
2. Incorrect parameter types. 3. Parameter verification failed. * @throws { BusinessError } 1600001 - Internal error. * @throws { BusinessError } 1600002 - Marshalling or unmarshalling error. * @throws { BusinessError } 1600003 - Failed to connect to the service. * @throws { BusinessError } 1600007 - The notification does 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 based on hashCode. * * @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 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. *
2. Incorrect parameter types. 3. Parameter verification failed. * @throws { BusinessError } 1600001 - Internal error. * @throws { BusinessError } 1600002 - Marshalling or unmarshalling error. * @throws { BusinessError } 1600003 - Failed to connect to the service. * @throws { BusinessError } 1600007 - The notification does not exist. * @syscap SystemCapability.Notification.Notification * @systemapi * @since 9 */ function remove(hashCode: string, reason: RemoveReason, callback: AsyncCallback): void; /** * Remove notifications based on hashCodes. * * @permission ohos.permission.NOTIFICATION_CONTROLLER * @param { Array } hashCodes - The hashCode array. * @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 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. *
2. Incorrect parameter types. 3. Parameter verification failed. * @throws { BusinessError } 1600001 - Internal error. * @throws { BusinessError } 1600002 - Marshalling or unmarshalling error. * @throws { BusinessError } 1600003 - Failed to connect to the service. * @syscap SystemCapability.Notification.Notification * @systemapi * @since 10 */ function remove(hashCodes: Array, reason: RemoveReason, callback: AsyncCallback): void; /** * Remove notification based on hashCode. * * @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 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. *
2. Incorrect parameter types. 3. Parameter verification failed. * @throws { BusinessError } 1600001 - Internal error. * @throws { BusinessError } 1600002 - Marshalling or unmarshalling error. * @throws { BusinessError } 1600003 - Failed to connect to the service. * @throws { BusinessError } 1600007 - The notification does not exist. * @syscap SystemCapability.Notification.Notification * @systemapi * @since 9 */ function remove(hashCode: string, reason: RemoveReason): Promise; /** * Remove notifications based on hashCodes. * * @permission ohos.permission.NOTIFICATION_CONTROLLER * @param { Array } hashCodes - The hashCode array. * @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 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. *
2. Incorrect parameter types. 3. Parameter verification failed. * @throws { BusinessError } 1600001 - Internal error. * @throws { BusinessError } 1600002 - Marshalling or unmarshalling error. * @throws { BusinessError } 1600003 - Failed to connect to the service. * @syscap SystemCapability.Notification.Notification * @systemapi * @since 10 */ function remove(hashCodes: Array, reason: RemoveReason): Promise; /** * RemoveAll all notifications based on BundleOption. * * @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 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. *
2. Incorrect parameter types. 3. Parameter verification failed. * @throws { BusinessError } 1600001 - Internal error. * @throws { BusinessError } 1600002 - Marshalling or unmarshalling error. * @throws { BusinessError } 1600003 - Failed to connect to the 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 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. *
2. Incorrect parameter types. 3. Parameter verification failed. * @throws { BusinessError } 1600001 - Internal error. * @throws { BusinessError } 1600002 - Marshalling or unmarshalling error. * @throws { BusinessError } 1600003 - Failed to connect to the 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 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. *
2. Incorrect parameter types. 3. Parameter verification failed. * @throws { BusinessError } 1600001 - Internal error. * @throws { BusinessError } 1600002 - Marshalling or unmarshalling error. * @throws { BusinessError } 1600003 - Failed to connect to the service. * @throws { BusinessError } 1600008 - The user does 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 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. *
2. Incorrect parameter types. 3. Parameter verification failed. * @throws { BusinessError } 1600001 - Internal error. * @throws { BusinessError } 1600002 - Marshalling or unmarshalling error. * @throws { BusinessError } 1600003 - Failed to connect to the service. * @throws { BusinessError } 1600008 - The user does 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 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. *
2. Incorrect parameter types. 3. Parameter verification failed. * @throws { BusinessError } 1600001 - Internal error. * @throws { BusinessError } 1600002 - Marshalling or unmarshalling error. * @throws { BusinessError } 1600003 - Failed to connect to the 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. * * @typedef { _BundleOption } BundleOption * @syscap SystemCapability.Notification.Notification * @systemapi * @since 9 */ export type BundleOption = _BundleOption; /** * Sets filter criteria of publishers for subscribing to desired notifications. * * @typedef { _NotificationSubscribeInfo } NotificationSubscribeInfo * @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. * * @typedef { _NotificationSubscriber } NotificationSubscriber * @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. * * @typedef { _SubscribeCallbackData } SubscribeCallbackData * @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. * * @typedef { _EnabledNotificationCallbackData } EnabledNotificationCallbackData * @syscap SystemCapability.Notification.Notification * @systemapi * @since 9 */ export type EnabledNotificationCallbackData = _EnabledNotificationCallbackData; /** * Describes the badge number of the application has changed. * * @typedef { _BadgeNumberCallbackData } BadgeNumberCallbackData * @syscap SystemCapability.Notification.Notification * @systemapi * @since 11 */ export type BadgeNumberCallbackData = _BadgeNumberCallbackData; } export default notificationSubscribe;