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

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

    /**
     * @alias sap.ushell.modules.Assistant.AssistantProvider
     * @class
     * @description The required interface for an Assistant module.
     *
     * @abstract
     *
     * @since 1.143.0
     * @private
     *
     * @ui5-restricted Joule
     */
    class AssistantProvider extends BaseProvider {
        /**
         * Loads the search component and initializes the search functionality.
         * @param {sap.ushell.modules.Assistant.AssistantProvider} oAssistantAPI The assistant API object.
         *
         * @since 1.143.0
         * @private
         * @ui5-restricted Joule
         */
        constructor (oAssistantAPI) {
            super(oAssistantAPI);
        }

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