161847f8eSopenharmony_ci/*
261847f8eSopenharmony_ci * Copyright (c) 2021-2024 Huawei Device Co., Ltd.
361847f8eSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"),
461847f8eSopenharmony_ci * you may not use this file except in compliance with the License.
561847f8eSopenharmony_ci * You may obtain a copy of the License at
661847f8eSopenharmony_ci *
761847f8eSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0
861847f8eSopenharmony_ci *
961847f8eSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
1061847f8eSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
1161847f8eSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1261847f8eSopenharmony_ci * See the License for the specific language governing permissions and
1361847f8eSopenharmony_ci * limitations under the License.
1461847f8eSopenharmony_ci */
1561847f8eSopenharmony_ci
1661847f8eSopenharmony_ci/**
1761847f8eSopenharmony_ci * @file Information carried when a notification is sent
1861847f8eSopenharmony_ci * @kit NotificationKit
1961847f8eSopenharmony_ci */
2061847f8eSopenharmony_ci
2161847f8eSopenharmony_ciimport notification from '../@ohos.notification';
2261847f8eSopenharmony_ciimport image from '../@ohos.multimedia.image';
2361847f8eSopenharmony_ciimport type notificationManager from '../@ohos.notificationManager';
2461847f8eSopenharmony_ciimport type notificationSubscribe from '../@ohos.notificationSubscribe';
2561847f8eSopenharmony_ciimport { WantAgent } from '../@ohos.wantAgent';
2661847f8eSopenharmony_ciimport { NotificationContent } from './notificationContent';
2761847f8eSopenharmony_ciimport { NotificationActionButton } from './notificationActionButton';
2861847f8eSopenharmony_ciimport { NotificationTemplate } from './notificationTemplate';
2961847f8eSopenharmony_ciimport { NotificationFlags } from './notificationFlags';
3061847f8eSopenharmony_ciimport type { BundleOption } from './NotificationCommonDef';
3161847f8eSopenharmony_ci
3261847f8eSopenharmony_ci/**
3361847f8eSopenharmony_ci * Defines a NotificationRequest instance.
3461847f8eSopenharmony_ci *
3561847f8eSopenharmony_ci * @typedef NotificationRequest
3661847f8eSopenharmony_ci * @syscap SystemCapability.Notification.Notification
3761847f8eSopenharmony_ci * @since 7
3861847f8eSopenharmony_ci */
3961847f8eSopenharmony_ci/**
4061847f8eSopenharmony_ci * Defines a NotificationRequest instance.
4161847f8eSopenharmony_ci *
4261847f8eSopenharmony_ci * @typedef NotificationRequest
4361847f8eSopenharmony_ci * @syscap SystemCapability.Notification.Notification
4461847f8eSopenharmony_ci * @crossplatform
4561847f8eSopenharmony_ci * @since 12
4661847f8eSopenharmony_ci */
4761847f8eSopenharmony_ciexport interface NotificationRequest {
4861847f8eSopenharmony_ci  /**
4961847f8eSopenharmony_ci   * Notification content.
5061847f8eSopenharmony_ci   *
5161847f8eSopenharmony_ci   * @type { NotificationContent }
5261847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
5361847f8eSopenharmony_ci   * @since 7
5461847f8eSopenharmony_ci   */
5561847f8eSopenharmony_ci  /**
5661847f8eSopenharmony_ci   * Notification content.
5761847f8eSopenharmony_ci   *
5861847f8eSopenharmony_ci   * @type { NotificationContent }
5961847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
6061847f8eSopenharmony_ci   * @crossplatform
6161847f8eSopenharmony_ci   * @since 12
6261847f8eSopenharmony_ci   */
6361847f8eSopenharmony_ci  content: NotificationContent;
6461847f8eSopenharmony_ci
6561847f8eSopenharmony_ci  /**
6661847f8eSopenharmony_ci   * Notification ID.
6761847f8eSopenharmony_ci   *
6861847f8eSopenharmony_ci   * @type { ?number }
6961847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
7061847f8eSopenharmony_ci   * @since 7
7161847f8eSopenharmony_ci   */
7261847f8eSopenharmony_ci  /**
7361847f8eSopenharmony_ci   * Notification ID.
7461847f8eSopenharmony_ci   *
7561847f8eSopenharmony_ci   * @type { ?number }
7661847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
7761847f8eSopenharmony_ci   * @crossplatform
7861847f8eSopenharmony_ci   * @since 12
7961847f8eSopenharmony_ci   */
8061847f8eSopenharmony_ci  id?: number;
8161847f8eSopenharmony_ci
8261847f8eSopenharmony_ci  /**
8361847f8eSopenharmony_ci   * Globally unique notification message ID defined by application.
8461847f8eSopenharmony_ci   *
8561847f8eSopenharmony_ci   * @type { ?string }
8661847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
8761847f8eSopenharmony_ci   * @since 12
8861847f8eSopenharmony_ci   */
8961847f8eSopenharmony_ci  appMessageId?: string;
9061847f8eSopenharmony_ci
9161847f8eSopenharmony_ci  /**
9261847f8eSopenharmony_ci   * Notification slot type.
9361847f8eSopenharmony_ci   *
9461847f8eSopenharmony_ci   * @type { ?notification.SlotType }
9561847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
9661847f8eSopenharmony_ci   * @since 7
9761847f8eSopenharmony_ci   * @deprecated since 11
9861847f8eSopenharmony_ci   * @useinstead NotificationRequest#notificationSlotType
9961847f8eSopenharmony_ci   */
10061847f8eSopenharmony_ci  slotType?: notification.SlotType;
10161847f8eSopenharmony_ci
10261847f8eSopenharmony_ci  /**
10361847f8eSopenharmony_ci   * Notification slot type.
10461847f8eSopenharmony_ci   *
10561847f8eSopenharmony_ci   * @type { ?notificationManager.SlotType }
10661847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
10761847f8eSopenharmony_ci   * @since 11
10861847f8eSopenharmony_ci   */
10961847f8eSopenharmony_ci  notificationSlotType?: notificationManager.SlotType;
11061847f8eSopenharmony_ci
11161847f8eSopenharmony_ci  /**
11261847f8eSopenharmony_ci   * Whether the notification is an ongoing notification.
11361847f8eSopenharmony_ci   *
11461847f8eSopenharmony_ci   * @type { ?boolean }
11561847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
11661847f8eSopenharmony_ci   * @since 7
11761847f8eSopenharmony_ci   */
11861847f8eSopenharmony_ci  /**
11961847f8eSopenharmony_ci   * Whether the notification is an ongoing notification.
12061847f8eSopenharmony_ci   *
12161847f8eSopenharmony_ci   * @type { ?boolean }
12261847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
12361847f8eSopenharmony_ci   * @crossplatform
12461847f8eSopenharmony_ci   * @since 12
12561847f8eSopenharmony_ci   */
12661847f8eSopenharmony_ci  isOngoing?: boolean;
12761847f8eSopenharmony_ci
12861847f8eSopenharmony_ci  /**
12961847f8eSopenharmony_ci   * Whether the notification can be removed.
13061847f8eSopenharmony_ci   *
13161847f8eSopenharmony_ci   * @type { ?boolean }
13261847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
13361847f8eSopenharmony_ci   * @since 7
13461847f8eSopenharmony_ci   */
13561847f8eSopenharmony_ci  isUnremovable?: boolean;
13661847f8eSopenharmony_ci
13761847f8eSopenharmony_ci  /**
13861847f8eSopenharmony_ci   * Time when the notification is sent.
13961847f8eSopenharmony_ci   *
14061847f8eSopenharmony_ci   * @type { ?number }
14161847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
14261847f8eSopenharmony_ci   * @since 7
14361847f8eSopenharmony_ci   */
14461847f8eSopenharmony_ci  /**
14561847f8eSopenharmony_ci   * Time when the notification is sent.
14661847f8eSopenharmony_ci   *
14761847f8eSopenharmony_ci   * @type { ?number }
14861847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
14961847f8eSopenharmony_ci   * @crossplatform
15061847f8eSopenharmony_ci   * @since 12
15161847f8eSopenharmony_ci   */
15261847f8eSopenharmony_ci  deliveryTime?: number;
15361847f8eSopenharmony_ci
15461847f8eSopenharmony_ci  /**
15561847f8eSopenharmony_ci   * Whether the notification is automatically cleared.
15661847f8eSopenharmony_ci   *
15761847f8eSopenharmony_ci   * @type { ?boolean }
15861847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
15961847f8eSopenharmony_ci   * @since 7
16061847f8eSopenharmony_ci   */
16161847f8eSopenharmony_ci  /**
16261847f8eSopenharmony_ci   * Whether the notification is automatically cleared.
16361847f8eSopenharmony_ci   *
16461847f8eSopenharmony_ci   * @type { ?boolean }
16561847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
16661847f8eSopenharmony_ci   * @crossplatform
16761847f8eSopenharmony_ci   * @since 12
16861847f8eSopenharmony_ci   */
16961847f8eSopenharmony_ci  tapDismissed?: boolean;
17061847f8eSopenharmony_ci
17161847f8eSopenharmony_ci  /**
17261847f8eSopenharmony_ci   * Time when the notification is automatically cleared.
17361847f8eSopenharmony_ci   *
17461847f8eSopenharmony_ci   * @type { ?number }
17561847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
17661847f8eSopenharmony_ci   * @since 7
17761847f8eSopenharmony_ci   */
17861847f8eSopenharmony_ci  /**
17961847f8eSopenharmony_ci   * Time when the notification is automatically cleared.
18061847f8eSopenharmony_ci   *
18161847f8eSopenharmony_ci   * @type { ?number }
18261847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
18361847f8eSopenharmony_ci   * @crossplatform
18461847f8eSopenharmony_ci   * @since 12
18561847f8eSopenharmony_ci   */
18661847f8eSopenharmony_ci  autoDeletedTime?: number;
18761847f8eSopenharmony_ci
18861847f8eSopenharmony_ci  /**
18961847f8eSopenharmony_ci   * WantAgent instance to which the notification will be redirected after being clicked.
19061847f8eSopenharmony_ci   *
19161847f8eSopenharmony_ci   * @type { ?WantAgent }
19261847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
19361847f8eSopenharmony_ci   * @since 7
19461847f8eSopenharmony_ci   */
19561847f8eSopenharmony_ci  wantAgent?: WantAgent;
19661847f8eSopenharmony_ci
19761847f8eSopenharmony_ci  /**
19861847f8eSopenharmony_ci   * Extended parameter.
19961847f8eSopenharmony_ci   *
20061847f8eSopenharmony_ci   * @type { ?object }
20161847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
20261847f8eSopenharmony_ci   * @since 7
20361847f8eSopenharmony_ci   */
20461847f8eSopenharmony_ci  extraInfo?: { [key: string]: any };
20561847f8eSopenharmony_ci
20661847f8eSopenharmony_ci  /**
20761847f8eSopenharmony_ci   * Background color of the notification.
20861847f8eSopenharmony_ci   *
20961847f8eSopenharmony_ci   * @type { ?number }
21061847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
21161847f8eSopenharmony_ci   * @since 7
21261847f8eSopenharmony_ci   */
21361847f8eSopenharmony_ci  color?: number;
21461847f8eSopenharmony_ci
21561847f8eSopenharmony_ci  /**
21661847f8eSopenharmony_ci   * Whether the notification background color can be enabled.
21761847f8eSopenharmony_ci   *
21861847f8eSopenharmony_ci   * @type { ?boolean }
21961847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
22061847f8eSopenharmony_ci   * @since 7
22161847f8eSopenharmony_ci   */
22261847f8eSopenharmony_ci  colorEnabled?: boolean;
22361847f8eSopenharmony_ci
22461847f8eSopenharmony_ci  /**
22561847f8eSopenharmony_ci   * Whether the notification triggers an alert only once.
22661847f8eSopenharmony_ci   *
22761847f8eSopenharmony_ci   * @type { ?boolean }
22861847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
22961847f8eSopenharmony_ci   * @since 7
23061847f8eSopenharmony_ci   */
23161847f8eSopenharmony_ci  /**
23261847f8eSopenharmony_ci   * Whether the notification triggers an alert only once.
23361847f8eSopenharmony_ci   *
23461847f8eSopenharmony_ci   * @type { ?boolean }
23561847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
23661847f8eSopenharmony_ci   * @crossplatform
23761847f8eSopenharmony_ci   * @since 12
23861847f8eSopenharmony_ci   */
23961847f8eSopenharmony_ci  isAlertOnce?: boolean;
24061847f8eSopenharmony_ci
24161847f8eSopenharmony_ci  /**
24261847f8eSopenharmony_ci   * Whether to display the stopwatch.
24361847f8eSopenharmony_ci   *
24461847f8eSopenharmony_ci   * @type { ?boolean }
24561847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
24661847f8eSopenharmony_ci   * @since 7
24761847f8eSopenharmony_ci   */
24861847f8eSopenharmony_ci  isStopwatch?: boolean;
24961847f8eSopenharmony_ci
25061847f8eSopenharmony_ci  /**
25161847f8eSopenharmony_ci   * Whether to display the countdown time.
25261847f8eSopenharmony_ci   *
25361847f8eSopenharmony_ci   * @type { ?boolean }
25461847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
25561847f8eSopenharmony_ci   * @since 7
25661847f8eSopenharmony_ci   */
25761847f8eSopenharmony_ci  isCountDown?: boolean;
25861847f8eSopenharmony_ci
25961847f8eSopenharmony_ci  /**
26061847f8eSopenharmony_ci   * Whether the notification is displayed as a floating icon.
26161847f8eSopenharmony_ci   *
26261847f8eSopenharmony_ci   * @type { ?boolean }
26361847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
26461847f8eSopenharmony_ci   * @since 7
26561847f8eSopenharmony_ci   */
26661847f8eSopenharmony_ci  isFloatingIcon?: boolean;
26761847f8eSopenharmony_ci
26861847f8eSopenharmony_ci  /**
26961847f8eSopenharmony_ci   * Notification label.
27061847f8eSopenharmony_ci   *
27161847f8eSopenharmony_ci   * @type { ?string }
27261847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
27361847f8eSopenharmony_ci   * @since 7
27461847f8eSopenharmony_ci   */
27561847f8eSopenharmony_ci  label?: string;
27661847f8eSopenharmony_ci
27761847f8eSopenharmony_ci  /**
27861847f8eSopenharmony_ci   * Notification badge type.
27961847f8eSopenharmony_ci   *
28061847f8eSopenharmony_ci   * @type { ?number }
28161847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
28261847f8eSopenharmony_ci   * @since 7
28361847f8eSopenharmony_ci   */
28461847f8eSopenharmony_ci  badgeIconStyle?: number;
28561847f8eSopenharmony_ci
28661847f8eSopenharmony_ci  /**
28761847f8eSopenharmony_ci   * Whether to display the time when the notification is delivered.
28861847f8eSopenharmony_ci   *
28961847f8eSopenharmony_ci   * @type { ?boolean }
29061847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
29161847f8eSopenharmony_ci   * @since 7
29261847f8eSopenharmony_ci   */
29361847f8eSopenharmony_ci  /**
29461847f8eSopenharmony_ci   * Whether to display the time when the notification is delivered.
29561847f8eSopenharmony_ci   *
29661847f8eSopenharmony_ci   * @type { ?boolean }
29761847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
29861847f8eSopenharmony_ci   * @crossplatform
29961847f8eSopenharmony_ci   * @since 12
30061847f8eSopenharmony_ci   */
30161847f8eSopenharmony_ci  showDeliveryTime?: boolean;
30261847f8eSopenharmony_ci
30361847f8eSopenharmony_ci  /**
30461847f8eSopenharmony_ci   * Buttons in the notification. Up to two buttons are allowed.
30561847f8eSopenharmony_ci   *
30661847f8eSopenharmony_ci   * @type { ?Array<NotificationActionButton> }
30761847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
30861847f8eSopenharmony_ci   * @since 7
30961847f8eSopenharmony_ci   */
31061847f8eSopenharmony_ci  actionButtons?: Array<NotificationActionButton>;
31161847f8eSopenharmony_ci
31261847f8eSopenharmony_ci  /**
31361847f8eSopenharmony_ci   * Small notification icon.
31461847f8eSopenharmony_ci   *
31561847f8eSopenharmony_ci   * @type { ?image.PixelMap }
31661847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
31761847f8eSopenharmony_ci   * @since 7
31861847f8eSopenharmony_ci   */
31961847f8eSopenharmony_ci  smallIcon?: image.PixelMap;
32061847f8eSopenharmony_ci
32161847f8eSopenharmony_ci  /**
32261847f8eSopenharmony_ci   * Large notification icon.
32361847f8eSopenharmony_ci   *
32461847f8eSopenharmony_ci   * @type { ?image.PixelMap }
32561847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
32661847f8eSopenharmony_ci   * @since 7
32761847f8eSopenharmony_ci   */
32861847f8eSopenharmony_ci  largeIcon?: image.PixelMap;
32961847f8eSopenharmony_ci
33061847f8eSopenharmony_ci  /**
33161847f8eSopenharmony_ci   * Overlay notification icon.
33261847f8eSopenharmony_ci   *
33361847f8eSopenharmony_ci   * @type { ?image.PixelMap }
33461847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
33561847f8eSopenharmony_ci   * @systemapi
33661847f8eSopenharmony_ci   * @since 11
33761847f8eSopenharmony_ci   */
33861847f8eSopenharmony_ci  overlayIcon?: image.PixelMap;
33961847f8eSopenharmony_ci
34061847f8eSopenharmony_ci  /**
34161847f8eSopenharmony_ci   * The group information for this notification.
34261847f8eSopenharmony_ci   *
34361847f8eSopenharmony_ci   * @type { ?string }
34461847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
34561847f8eSopenharmony_ci   * @since 8
34661847f8eSopenharmony_ci   */
34761847f8eSopenharmony_ci  /**
34861847f8eSopenharmony_ci   * The group information for this notification.
34961847f8eSopenharmony_ci   *
35061847f8eSopenharmony_ci   * @type { ?string }
35161847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
35261847f8eSopenharmony_ci   * @crossplatform
35361847f8eSopenharmony_ci   * @since 12
35461847f8eSopenharmony_ci   */
35561847f8eSopenharmony_ci  groupName?: string;
35661847f8eSopenharmony_ci
35761847f8eSopenharmony_ci  /**
35861847f8eSopenharmony_ci   * Read-only name of the package for which a notification is created.
35961847f8eSopenharmony_ci   *
36061847f8eSopenharmony_ci   * @type { ?string }
36161847f8eSopenharmony_ci   * @readonly
36261847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
36361847f8eSopenharmony_ci   * @since 7
36461847f8eSopenharmony_ci   */
36561847f8eSopenharmony_ci  readonly creatorBundleName?: string;
36661847f8eSopenharmony_ci
36761847f8eSopenharmony_ci  /**
36861847f8eSopenharmony_ci   * Read-only UID of the notification creator.
36961847f8eSopenharmony_ci   *
37061847f8eSopenharmony_ci   * @type { ?number }
37161847f8eSopenharmony_ci   * @readonly
37261847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
37361847f8eSopenharmony_ci   * @since 7
37461847f8eSopenharmony_ci   */
37561847f8eSopenharmony_ci  readonly creatorUid?: number;
37661847f8eSopenharmony_ci
37761847f8eSopenharmony_ci  /**
37861847f8eSopenharmony_ci   * Read-only PID of the notification creator.
37961847f8eSopenharmony_ci   *
38061847f8eSopenharmony_ci   * @type { ?number }
38161847f8eSopenharmony_ci   * @readonly
38261847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
38361847f8eSopenharmony_ci   * @since 7
38461847f8eSopenharmony_ci   */
38561847f8eSopenharmony_ci  readonly creatorPid?: number;
38661847f8eSopenharmony_ci
38761847f8eSopenharmony_ci  /**
38861847f8eSopenharmony_ci   * Read-only UserId of the notification creator.
38961847f8eSopenharmony_ci   *
39061847f8eSopenharmony_ci   * @type { ?number }
39161847f8eSopenharmony_ci   * @readonly
39261847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
39361847f8eSopenharmony_ci   * @since 8
39461847f8eSopenharmony_ci   */
39561847f8eSopenharmony_ci  readonly creatorUserId?: number;
39661847f8eSopenharmony_ci
39761847f8eSopenharmony_ci  /**
39861847f8eSopenharmony_ci   * Application instance key.
39961847f8eSopenharmony_ci   *
40061847f8eSopenharmony_ci   * @type { ?number }
40161847f8eSopenharmony_ci   * @readonly
40261847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
40361847f8eSopenharmony_ci   * @systemapi
40461847f8eSopenharmony_ci   * @since 12
40561847f8eSopenharmony_ci   */
40661847f8eSopenharmony_ci  readonly creatorInstanceKey?: number;
40761847f8eSopenharmony_ci
40861847f8eSopenharmony_ci  /**
40961847f8eSopenharmony_ci   * Obtain the prompt tone resource path of the notification.
41061847f8eSopenharmony_ci   *
41161847f8eSopenharmony_ci   * @type { ?string }
41261847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
41361847f8eSopenharmony_ci   * @since 12
41461847f8eSopenharmony_ci   */
41561847f8eSopenharmony_ci  sound?: string;
41661847f8eSopenharmony_ci
41761847f8eSopenharmony_ci  /**
41861847f8eSopenharmony_ci   * Obtains the classification of this notification.
41961847f8eSopenharmony_ci   *
42061847f8eSopenharmony_ci   * @type { ?string }
42161847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
42261847f8eSopenharmony_ci   * @systemapi
42361847f8eSopenharmony_ci   * @since 7
42461847f8eSopenharmony_ci   */
42561847f8eSopenharmony_ci  classification?: string;
42661847f8eSopenharmony_ci
42761847f8eSopenharmony_ci  /**
42861847f8eSopenharmony_ci   * Obtains the unique hash code of a notification in the current application.
42961847f8eSopenharmony_ci   *
43061847f8eSopenharmony_ci   * @type { ?string }
43161847f8eSopenharmony_ci   * @readonly
43261847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
43361847f8eSopenharmony_ci   * @since 7
43461847f8eSopenharmony_ci   */
43561847f8eSopenharmony_ci  readonly hashCode?: string;
43661847f8eSopenharmony_ci
43761847f8eSopenharmony_ci  /**
43861847f8eSopenharmony_ci   * Whether the notification can be remove.
43961847f8eSopenharmony_ci   *
44061847f8eSopenharmony_ci   * @type { ?boolean }
44161847f8eSopenharmony_ci   * @default true
44261847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
44361847f8eSopenharmony_ci   * @systemapi
44461847f8eSopenharmony_ci   * @since 8
44561847f8eSopenharmony_ci   */
44661847f8eSopenharmony_ci  /**
44761847f8eSopenharmony_ci   * Whether the notification can be remove.
44861847f8eSopenharmony_ci   *
44961847f8eSopenharmony_ci   * @permission ohos.permission.SET_UNREMOVABLE_NOTIFICATION
45061847f8eSopenharmony_ci   * @type { ?boolean }
45161847f8eSopenharmony_ci   * @default true
45261847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
45361847f8eSopenharmony_ci   * @systemapi
45461847f8eSopenharmony_ci   * @since 11
45561847f8eSopenharmony_ci   */
45661847f8eSopenharmony_ci  isRemoveAllowed?: boolean;
45761847f8eSopenharmony_ci
45861847f8eSopenharmony_ci  /**
45961847f8eSopenharmony_ci   * Notification source. enum SourceType
46061847f8eSopenharmony_ci   *
46161847f8eSopenharmony_ci   * @type { ?number }
46261847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
46361847f8eSopenharmony_ci   * @systemapi
46461847f8eSopenharmony_ci   * @since 8
46561847f8eSopenharmony_ci   */
46661847f8eSopenharmony_ci  readonly source?: number;
46761847f8eSopenharmony_ci
46861847f8eSopenharmony_ci  /**
46961847f8eSopenharmony_ci   * Obtains the template of this notification.
47061847f8eSopenharmony_ci   *
47161847f8eSopenharmony_ci   * @type { ?NotificationTemplate }
47261847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
47361847f8eSopenharmony_ci   * @since 8
47461847f8eSopenharmony_ci   */
47561847f8eSopenharmony_ci  template?: NotificationTemplate;
47661847f8eSopenharmony_ci
47761847f8eSopenharmony_ci  /**
47861847f8eSopenharmony_ci   * The options to distributed notification.
47961847f8eSopenharmony_ci   *
48061847f8eSopenharmony_ci   * @type { ?DistributedOptions }
48161847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
48261847f8eSopenharmony_ci   * @since 8
48361847f8eSopenharmony_ci   */
48461847f8eSopenharmony_ci  distributedOption?: DistributedOptions;
48561847f8eSopenharmony_ci
48661847f8eSopenharmony_ci  /**
48761847f8eSopenharmony_ci   * The device ID of the notification source.
48861847f8eSopenharmony_ci   *
48961847f8eSopenharmony_ci   * @type { ?string }
49061847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
49161847f8eSopenharmony_ci   * @systemapi
49261847f8eSopenharmony_ci   * @since 8
49361847f8eSopenharmony_ci   */
49461847f8eSopenharmony_ci  readonly deviceId?: string;
49561847f8eSopenharmony_ci
49661847f8eSopenharmony_ci  /**
49761847f8eSopenharmony_ci   * Obtains the set of identifiers for the notification.
49861847f8eSopenharmony_ci   *
49961847f8eSopenharmony_ci   * @type { ?NotificationFlags }
50061847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
50161847f8eSopenharmony_ci   * @since 8
50261847f8eSopenharmony_ci   */
50361847f8eSopenharmony_ci  readonly notificationFlags?: NotificationFlags;
50461847f8eSopenharmony_ci
50561847f8eSopenharmony_ci  /**
50661847f8eSopenharmony_ci   * WantAgent instance to which the notification will be redirected when removing notification.
50761847f8eSopenharmony_ci   *
50861847f8eSopenharmony_ci   * @type { ?WantAgent }
50961847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
51061847f8eSopenharmony_ci   * @since 9
51161847f8eSopenharmony_ci   */
51261847f8eSopenharmony_ci  removalWantAgent?: WantAgent;
51361847f8eSopenharmony_ci
51461847f8eSopenharmony_ci  /**
51561847f8eSopenharmony_ci   * Number of notifications displayed on the app icon.
51661847f8eSopenharmony_ci   *
51761847f8eSopenharmony_ci   * @type { ?number }
51861847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
51961847f8eSopenharmony_ci   * @since 9
52061847f8eSopenharmony_ci   */
52161847f8eSopenharmony_ci  /**
52261847f8eSopenharmony_ci   * Number of notifications displayed on the app icon.
52361847f8eSopenharmony_ci   *
52461847f8eSopenharmony_ci   * @type { ?number }
52561847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
52661847f8eSopenharmony_ci   * @crossplatform
52761847f8eSopenharmony_ci   * @since 12
52861847f8eSopenharmony_ci   */
52961847f8eSopenharmony_ci  badgeNumber?: number;
53061847f8eSopenharmony_ci
53161847f8eSopenharmony_ci  /**
53261847f8eSopenharmony_ci   * Whether the notification need to be agent display.
53361847f8eSopenharmony_ci   *
53461847f8eSopenharmony_ci   * @type { ?BundleOption }
53561847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
53661847f8eSopenharmony_ci   * @systemapi
53761847f8eSopenharmony_ci   * @since 12
53861847f8eSopenharmony_ci   */
53961847f8eSopenharmony_ci  representativeBundle?: BundleOption;
54061847f8eSopenharmony_ci  
54161847f8eSopenharmony_ci  /**
54261847f8eSopenharmony_ci   * Proxy identity of creation notification.
54361847f8eSopenharmony_ci   * 
54461847f8eSopenharmony_ci   * @type { ?BundleOption }
54561847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
54661847f8eSopenharmony_ci   * @systemapi
54761847f8eSopenharmony_ci   * @since 12
54861847f8eSopenharmony_ci   */
54961847f8eSopenharmony_ci  readonly agentBundle?: BundleOption;
55061847f8eSopenharmony_ci
55161847f8eSopenharmony_ci  /**
55261847f8eSopenharmony_ci   * Unified aggregation of information across applications.
55361847f8eSopenharmony_ci   *
55461847f8eSopenharmony_ci   * @type { ?UnifiedGroupInfo }
55561847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
55661847f8eSopenharmony_ci   * @systemapi
55761847f8eSopenharmony_ci   * @since 12
55861847f8eSopenharmony_ci   */
55961847f8eSopenharmony_ci  unifiedGroupInfo?: UnifiedGroupInfo;
56061847f8eSopenharmony_ci
56161847f8eSopenharmony_ci  /**
56261847f8eSopenharmony_ci   * Notification control flags.
56361847f8eSopenharmony_ci   *
56461847f8eSopenharmony_ci   * @type { ?number }
56561847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
56661847f8eSopenharmony_ci   * @systemapi
56761847f8eSopenharmony_ci   * @since 12
56861847f8eSopenharmony_ci   */
56961847f8eSopenharmony_ci  notificationControlFlags?: number;
57061847f8eSopenharmony_ci}
57161847f8eSopenharmony_ci
57261847f8eSopenharmony_ci/**
57361847f8eSopenharmony_ci * Describes distributed options.
57461847f8eSopenharmony_ci *
57561847f8eSopenharmony_ci * @typedef DistributedOptions
57661847f8eSopenharmony_ci * @syscap SystemCapability.Notification.Notification
57761847f8eSopenharmony_ci * @since 8
57861847f8eSopenharmony_ci */
57961847f8eSopenharmony_ciexport interface DistributedOptions {
58061847f8eSopenharmony_ci  /**
58161847f8eSopenharmony_ci   * Obtains whether is the distributed notification.
58261847f8eSopenharmony_ci   *
58361847f8eSopenharmony_ci   * @type { ?boolean }
58461847f8eSopenharmony_ci   * @default true
58561847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
58661847f8eSopenharmony_ci   * @since 8
58761847f8eSopenharmony_ci   */
58861847f8eSopenharmony_ci  isDistributed?: boolean;
58961847f8eSopenharmony_ci
59061847f8eSopenharmony_ci  /**
59161847f8eSopenharmony_ci   * Obtains the types of devices to which the notification can be synchronized.
59261847f8eSopenharmony_ci   *
59361847f8eSopenharmony_ci   * @type { ?Array<string> }
59461847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
59561847f8eSopenharmony_ci   * @since 8
59661847f8eSopenharmony_ci   */
59761847f8eSopenharmony_ci  supportDisplayDevices?: Array<string>;
59861847f8eSopenharmony_ci
59961847f8eSopenharmony_ci  /**
60061847f8eSopenharmony_ci   * Obtains the devices on which notifications can be open.
60161847f8eSopenharmony_ci   *
60261847f8eSopenharmony_ci   * @type { ?Array<string> }
60361847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
60461847f8eSopenharmony_ci   * @since 8
60561847f8eSopenharmony_ci   */
60661847f8eSopenharmony_ci  supportOperateDevices?: Array<string>;
60761847f8eSopenharmony_ci
60861847f8eSopenharmony_ci  /**
60961847f8eSopenharmony_ci   * Obtains the remind mode of the notification. enum DeviceRemindType.
61061847f8eSopenharmony_ci   *
61161847f8eSopenharmony_ci   * @type { ?number }
61261847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
61361847f8eSopenharmony_ci   * @systemapi
61461847f8eSopenharmony_ci   * @since 8
61561847f8eSopenharmony_ci   */
61661847f8eSopenharmony_ci  readonly remindType?: number;
61761847f8eSopenharmony_ci}
61861847f8eSopenharmony_ci
61961847f8eSopenharmony_ci/**
62061847f8eSopenharmony_ci * Describes notification filter.
62161847f8eSopenharmony_ci *
62261847f8eSopenharmony_ci * @typedef NotificationFilter
62361847f8eSopenharmony_ci * @syscap SystemCapability.Notification.Notification
62461847f8eSopenharmony_ci * @systemapi
62561847f8eSopenharmony_ci * @since 11
62661847f8eSopenharmony_ci */
62761847f8eSopenharmony_ciexport interface NotificationFilter {
62861847f8eSopenharmony_ci  /**
62961847f8eSopenharmony_ci   * BundleOption of the notification.
63061847f8eSopenharmony_ci   *
63161847f8eSopenharmony_ci   * @type { BundleOption }
63261847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
63361847f8eSopenharmony_ci   * @systemapi
63461847f8eSopenharmony_ci   * @since 11
63561847f8eSopenharmony_ci   */
63661847f8eSopenharmony_ci  bundle: BundleOption;
63761847f8eSopenharmony_ci
63861847f8eSopenharmony_ci  /**
63961847f8eSopenharmony_ci   * Indicates the label and id of the notification.
64061847f8eSopenharmony_ci   *
64161847f8eSopenharmony_ci   * @type { notificationSubscribe.NotificationKey }
64261847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
64361847f8eSopenharmony_ci   * @systemapi
64461847f8eSopenharmony_ci   * @since 11
64561847f8eSopenharmony_ci   */
64661847f8eSopenharmony_ci  notificationKey: notificationSubscribe.NotificationKey;
64761847f8eSopenharmony_ci
64861847f8eSopenharmony_ci  /**
64961847f8eSopenharmony_ci   * Indicates the additional information filter keys list.
65061847f8eSopenharmony_ci   *
65161847f8eSopenharmony_ci   * @type { ?Array<string> }
65261847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
65361847f8eSopenharmony_ci   * @systemapi
65461847f8eSopenharmony_ci   * @since 11
65561847f8eSopenharmony_ci   */
65661847f8eSopenharmony_ci  extraInfoKeys?: Array<string>;
65761847f8eSopenharmony_ci}
65861847f8eSopenharmony_ci
65961847f8eSopenharmony_ci/**
66061847f8eSopenharmony_ci * Describes notification check information.
66161847f8eSopenharmony_ci *
66261847f8eSopenharmony_ci * @typedef NotificationCheckRequest
66361847f8eSopenharmony_ci * @syscap SystemCapability.Notification.Notification
66461847f8eSopenharmony_ci * @systemapi
66561847f8eSopenharmony_ci * @since 11
66661847f8eSopenharmony_ci */
66761847f8eSopenharmony_ciexport interface NotificationCheckRequest {
66861847f8eSopenharmony_ci  /**
66961847f8eSopenharmony_ci   * The notification content type.
67061847f8eSopenharmony_ci   *
67161847f8eSopenharmony_ci   * @type { notificationManager.ContentType }
67261847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
67361847f8eSopenharmony_ci   * @systemapi
67461847f8eSopenharmony_ci   * @since 11
67561847f8eSopenharmony_ci   */
67661847f8eSopenharmony_ci  contentType: notificationManager.ContentType;
67761847f8eSopenharmony_ci
67861847f8eSopenharmony_ci  /**
67961847f8eSopenharmony_ci   * Type of the notification slot..
68061847f8eSopenharmony_ci   *
68161847f8eSopenharmony_ci   * @type { notificationManager.SlotType }
68261847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
68361847f8eSopenharmony_ci   * @systemapi
68461847f8eSopenharmony_ci   * @since 11
68561847f8eSopenharmony_ci   */
68661847f8eSopenharmony_ci  slotType: notificationManager.SlotType;
68761847f8eSopenharmony_ci
68861847f8eSopenharmony_ci  /**
68961847f8eSopenharmony_ci   * Additional information of the notification.
69061847f8eSopenharmony_ci   *
69161847f8eSopenharmony_ci   * @type { Array<string> }
69261847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
69361847f8eSopenharmony_ci   * @systemapi
69461847f8eSopenharmony_ci   * @since 11
69561847f8eSopenharmony_ci   */
69661847f8eSopenharmony_ci  extraInfoKeys: Array<string>;
69761847f8eSopenharmony_ci}
69861847f8eSopenharmony_ci
69961847f8eSopenharmony_ci/**
70061847f8eSopenharmony_ci * Unified aggregation of information across applications.
70161847f8eSopenharmony_ci *
70261847f8eSopenharmony_ci * @typedef UnifiedGroupInfo
70361847f8eSopenharmony_ci * @syscap SystemCapability.Notification.Notification
70461847f8eSopenharmony_ci * @systemapi
70561847f8eSopenharmony_ci * @since 12
70661847f8eSopenharmony_ci */
70761847f8eSopenharmony_ciexport interface UnifiedGroupInfo {
70861847f8eSopenharmony_ci  /**
70961847f8eSopenharmony_ci   * The key is aggregated across applications.
71061847f8eSopenharmony_ci   *
71161847f8eSopenharmony_ci   * @type { ?string }
71261847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
71361847f8eSopenharmony_ci   * @systemapi
71461847f8eSopenharmony_ci   * @since 12
71561847f8eSopenharmony_ci   */
71661847f8eSopenharmony_ci  key?: string;
71761847f8eSopenharmony_ci
71861847f8eSopenharmony_ci  /**
71961847f8eSopenharmony_ci   * The title is aggregated across applications.
72061847f8eSopenharmony_ci   *
72161847f8eSopenharmony_ci   * @type { ?string }
72261847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
72361847f8eSopenharmony_ci   * @systemapi
72461847f8eSopenharmony_ci   * @since 12
72561847f8eSopenharmony_ci   */
72661847f8eSopenharmony_ci  title?: string;
72761847f8eSopenharmony_ci
72861847f8eSopenharmony_ci  /**
72961847f8eSopenharmony_ci   * The content is aggregated across applications.
73061847f8eSopenharmony_ci   *
73161847f8eSopenharmony_ci   * @type { ?string }
73261847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
73361847f8eSopenharmony_ci   * @systemapi
73461847f8eSopenharmony_ci   * @since 12
73561847f8eSopenharmony_ci   */
73661847f8eSopenharmony_ci  content?: string;
73761847f8eSopenharmony_ci
73861847f8eSopenharmony_ci  /**
73961847f8eSopenharmony_ci   * Aggregation scenario name.
74061847f8eSopenharmony_ci   *
74161847f8eSopenharmony_ci   * @type { ?string }
74261847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
74361847f8eSopenharmony_ci   * @systemapi
74461847f8eSopenharmony_ci   * @since 12
74561847f8eSopenharmony_ci   */
74661847f8eSopenharmony_ci  sceneName?: string;
74761847f8eSopenharmony_ci
74861847f8eSopenharmony_ci  /**
74961847f8eSopenharmony_ci   * Other information is aggregated across applications.
75061847f8eSopenharmony_ci   *
75161847f8eSopenharmony_ci   * @type { ?object }
75261847f8eSopenharmony_ci   * @syscap SystemCapability.Notification.Notification
75361847f8eSopenharmony_ci   * @systemapi
75461847f8eSopenharmony_ci   * @since 12
75561847f8eSopenharmony_ci   */
75661847f8eSopenharmony_ci  extraInfo?: { [key: string]: any };
75761847f8eSopenharmony_ci}
758