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

/**
 * @file This is an empty wrapper for the BaseProvider module implementation to document the required interface
 */

sap.ui.define([
    "sap/ushell/modules/BaseAPI"
], (
    BaseAPI
) => {
    "use strict";

    /**
     * @alias sap.ushell.modules.BaseProvider
     * @interface
     * @description The BaseProvider interface which all module providers should implement.
     *
     * @since 1.142.0
     * @private
     */
    class BaseProvider {
        /**
         * Creates a new instance of the Provider module.
         *
         * @param {sap.ushell.modules.BaseAPI} oAPI The API instance of the module.
         * @since 1.142.0
         * @private
         */
        constructor (oAPI) {}

        /**
         * Cleans up the provider instance before destruction.
         *
         * @returns {Promise} A promise that resolves when the exit is completed.
         *
         * @since 1.142.0
         * @private
         */
        async exit () {}
    }
    return BaseProvider;
});
