// Copyright (c) 2009-2026 SAP SE, All Rights Reserved

/**
 * @file This is an empty wrapper for the NotificationsProvider module implementation to document the required interface
 */
sap.ui.define([
    "sap/ushell/modules/BaseProvider"
], (
    BaseProvider
) => {
    "use strict";

    /**
     * @alias sap.ushell.modules.Notifications.NotificationsProvider
     * @class
     * @description The required interface for a Notifications module.
     *
     * @abstract
     *
     * @since 1.142.0
     * @private
     *
     * @ui5-restricted ANS
     */
    class NotificationsProvider extends BaseProvider {
        /**
         * Loads the search component and initializes the search functionality.
         * @param {sap.ushell.modules.Notifications.NotificationsAPI} oNotificationsAPI The notifications API object.
         *
         * @since 1.142.0
         * @private
         * @ui5-restricted ANS
         */
        constructor (oNotificationsAPI) {
            super(oNotificationsAPI);
        }

        /**
         * Cleans up the component instance.
         * @returns {Promise} Resolves once destroy is done.
         *
         * @since 1.142.0
         * @private
         * @ui5-restricted ANS
         */
        async exit () {
            // to be overridden by subclasses
        }
    }
    return NotificationsProvider;
}, false);
