/*
 * Copyright (c) 2025 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.
 */

sequenceable OHOS.Notification.Notification;
sequenceable OHOS.Notification.NotificationSortingMap;
sequenceable OHOS.Notification.NotificationDoNotDisturbDate;
sequenceable OHOS.Notification.EnabledNotificationCallbackData;
sequenceable OHOS.Notification.EnabledPriorityNotificationByBundleCallbackData;
sequenceable OHOS.Notification.EnabledSilentReminderCallbackData;
sequenceable OHOS.Notification.BadgeNumberCallbackData;
sequenceable OHOS.Notification.NotificationOperationInfo;
sequenceable OHOS.Notification.NotificationApplicationChangeInfo;
sequenceable OHOS.Notification.NotificationSwitchChangedCallbackData;
interface OHOS.Notification.IAnsSubscriber {
    [oneway] void OnConnected();

    [oneway] void OnDisconnected();

    [ipcincapacity 520, oneway] void OnConsumed([in] sptr<Notification> notification, [in] sptr<NotificationSortingMap> notificationMap);
    [ipcincapacity 520, oneway] void OnConsumed([in] sptr<Notification> notification);

    [ipcincapacity 520, oneway] void OnConsumedList([in] sptr<Notification>[] notifications, [in] sptr<NotificationSortingMap> notificationMap);
    [ipcincapacity 520, oneway] void OnConsumedList([in] sptr<Notification>[] notifications);

    [ipcincapacity 520, oneway] void OnCanceled([in] sptr<Notification> notification, [in] sptr<NotificationSortingMap> notificationMap, [in] int deleteReason);
    [ipcincapacity 520, oneway] void OnCanceled([in] sptr<Notification> notification, [in] int deleteReason);

    [ipcincapacity 520, oneway] void OnCanceledList([in] sptr<Notification>[] notifications, [in] sptr<NotificationSortingMap> notificationMap, [in] int deleteReason);
    [ipcincapacity 520, oneway] void OnCanceledList([in] sptr<Notification>[] notifications, [in] int deleteReason);

    [oneway] void OnSystemUpdate([in] sptr<Notification> notification);
    [oneway] void OnEnabledPriorityChanged([in] sptr<EnabledNotificationCallbackData> callbackData);
    [oneway] void OnEnabledPriorityByBundleChanged([in] sptr<EnabledPriorityNotificationByBundleCallbackData> callbackData);
    [oneway] void OnEnabledWatchStatusChanged([in] unsigned int watchStatus);
    [oneway] void OnUpdated([in] sptr<NotificationSortingMap> notificationMap);
    [oneway] void OnDoNotDisturbDateChange([in] sptr<NotificationDoNotDisturbDate> date);
    [oneway] void OnEnabledNotificationChanged([in] sptr<EnabledNotificationCallbackData> callbackData);
    [oneway] void OnEnabledSilentReminderChanged([in] sptr<EnabledSilentReminderCallbackData> callbackData);
    [oneway] void OnNotificationSwitchChanged([in] sptr<NotificationSwitchChangedCallbackData> callbackData);
    [oneway] void OnBadgeChanged([in] sptr<BadgeNumberCallbackData> badgeData);
    [oneway] void OnBadgeEnabledChanged([in] sptr<EnabledNotificationCallbackData> callbackData);
    [oneway] void OnApplicationInfoNeedChanged([in] sptr<NotificationApplicationChangeInfo> applicationChangeInfo);
    int OnOperationResponse([in] sptr<NotificationOperationInfo> operationInfo);
}