/*---------------------------------------------------------------------------------------------
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
* See LICENSE.md in the project root for license terms and full copyright notice.
*--------------------------------------------------------------------------------------------*/
/* eslint-disable deprecation/deprecation */
/** @packageDocumentation
 * @module Frontstage
 */
import { InternalFrontstageManager as internal } from "./InternalFrontstageManager";
/** Frontstage Manager class.
 * @public
 * @deprecated in 3.7. Use `UiFramework.frontstages` property.
 */
export class FrontstageManager {
    /** Initializes the InternalFrontstageManager
     * @deprecated in 3.7. This is called internally.
    */
    static initialize() {
        internal.initialize();
    }
    /** This should only be called within InternalFrontstageManager and its tests.
     *  @internal
     */
    static ensureToolInformationIsSet(toolId) {
        return internal.ensureToolInformationIsSet(toolId);
    }
    /** @internal */
    static get isInitialized() { return internal.isInitialized; }
    static set isInitialized(v) { internal.isInitialized = v; }
    /** Returns true if Frontstage is loading its controls. If false the Frontstage content and controls have been created. */
    static get isLoading() { return internal.isLoading; }
    /** @internal */
    static get nineZoneSize() { return internal.nineZoneSize; }
    static set nineZoneSize(size) {
        internal.nineZoneSize = size;
    }
    /** @internal */
    static get frontstageDefs() {
        return internal.frontstageDefs;
    }
    /** Get Frontstage Deactivated event. */
    static get onFrontstageDeactivatedEvent() { return internal.onFrontstageDeactivatedEvent; }
    /** Get Frontstage Activated event. */
    static get onFrontstageActivatedEvent() { return internal.onFrontstageActivatedEvent; }
    /** Get Frontstage Activated event. */
    static get onFrontstageReadyEvent() { return internal.onFrontstageReadyEvent; }
    /** Get Modal Frontstage Changed event. */
    static get onModalFrontstageChangedEvent() { return internal.onModalFrontstageChangedEvent; }
    /** Get Modal Frontstage Closed event. */
    static get onModalFrontstageClosedEvent() { return internal.onModalFrontstageClosedEvent; }
    /** Get Modal Frontstage Requested Closed event.
       * @alpha
       */
    static get onCloseModalFrontstageRequestedEvent() { return internal.onCloseModalFrontstageRequestedEvent; }
    /** Get Tool Activated event. */
    static get onToolActivatedEvent() { return internal.onToolActivatedEvent; }
    /** Get ToolSetting Reload event. */
    static get onToolSettingsReloadEvent() { return internal.onToolSettingsReloadEvent; }
    /** Get Tool Panel Opened event.
       * @internal
       */
    static get onToolPanelOpenedEvent() { return internal.onToolPanelOpenedEvent; }
    /** Get Tool Icon Changed event. */
    static get onToolIconChangedEvent() { return internal.onToolIconChangedEvent; }
    /** Get Content Layout Activated event. */
    static get onContentLayoutActivatedEvent() { return internal.onContentLayoutActivatedEvent; }
    /** Get Content Control Activated event. */
    static get onContentControlActivatedEvent() { return internal.onContentControlActivatedEvent; }
    /** Get Navigation Aid Activated event. */
    static get onNavigationAidActivatedEvent() { return internal.onNavigationAidActivatedEvent; }
    /** Get Widget State Changed event. */
    static get onWidgetStateChangedEvent() { return internal.onWidgetStateChangedEvent; }
    /** @internal */
    static get onWidgetLabelChangedEvent() { return internal.onWidgetLabelChangedEvent; }
    /** @internal */
    static get onWidgetShowEvent() { return internal.onWidgetShowEvent; }
    /** @internal */
    static get onWidgetExpandEvent() { return internal.onWidgetExpandEvent; }
    /** @internal */
    static get onWidgetDefsUpdatedEvent() { return internal.onWidgetDefsUpdatedEvent; }
    /** @internal */
    static get onFrontstageNineZoneStateChangedEvent() { return internal.onFrontstageNineZoneStateChangedEvent; }
    /** @internal */
    static get onFrontstageRestoreLayoutEvent() { return internal.onFrontstageRestoreLayoutEvent; }
    /** Get Widget State Changed event.
       * @alpha
       */
    static get onPanelStateChangedEvent() { return internal.onPanelStateChangedEvent; }
    /** @internal */
    static get onPanelSizeChangedEvent() { return internal.onPanelSizeChangedEvent; }
    /** Get Nine-zone State Manager.
       * @deprecated in 3.6. Used in UI1.0 only.
       */
    static get NineZoneManager() { return internal.NineZoneManager; }
    /** Clears the Frontstage map.
       */
    static clearFrontstageDefs() {
        return internal.clearFrontstageDefs();
    }
    /** Clears the Frontstage Providers and the defs that may have been created from them.
       */
    static clearFrontstageProviders() {
        return internal.clearFrontstageProviders();
    }
    /** @internal */
    static clearFrontstageDefsForIModelId(iModelId) {
        return internal.clearFrontstageDefsForIModelId(iModelId);
    }
    /** Add a Frontstage via a [[FrontstageProvider]].
       * @param frontstageProvider  FrontstageProvider representing the Frontstage to add
       */
    static addFrontstageProvider(frontstageProvider) {
        return internal.addFrontstageProvider(frontstageProvider);
    }
    /** Find a loaded Frontstage with a given id. If the id is not provided, the active Frontstage is returned. If
       * no cached FrontstageDef is found but a FrontstageProvider is registered a FrontstageDef will be created, cached, and
       * returned.
       * @param id  Id of the Frontstage to find
       * @returns  FrontstageDef with a given id if found, or undefined if not found.
       */
    static async getFrontstageDef(id) {
        return internal.getFrontstageDef(id);
    }
    /** Gets the active FrontstageDef. If a Frontstage is not active, undefined is returned.
       * @return  Active FrontstageDef, or undefined if one is not active.
       */
    static get activeFrontstageDef() {
        return internal.activeFrontstageDef;
    }
    /** Gets the Id of the active FrontstageDef. If a Frontstage is not active, blank is returned.
       * @return  Id of the active FrontstageDef, or blank if one is not active.
       */
    static get activeFrontstageId() {
        return internal.activeFrontstageId;
    }
    static hasFrontstage(frontstageId) {
        return internal.hasFrontstage(frontstageId);
    }
    /** Sets the active FrontstageDef give the stageId.
       * @param  frontstageId  Id of the Frontstage to set active.
       * @returns A Promise that is fulfilled when the [[Frontstage]] is ready.
       */
    static async setActiveFrontstage(frontstageId) {
        return internal.setActiveFrontstage(frontstageId);
    }
    /** Sets the active FrontstageDef.
       * @param  frontstageDef  FrontstageDef to set active.
       * @returns A Promise that is fulfilled when the [[FrontstageDef]] is ready.
       */
    static async setActiveFrontstageDef(frontstageDef) {
        return internal.setActiveFrontstageDef(frontstageDef);
    }
    /** Deactivates the active FrontstageDef.
       */
    static async deactivateFrontstageDef() {
        return internal.deactivateFrontstageDef();
    }
    /** Gets the Id of the active tool. If a tool is not active, blank is returned.
       * @return  Id of the active tool, or blank if one is not active.
       */
    static get activeToolId() {
        return internal.activeToolId;
    }
    /** Sets the active tool id */
    static setActiveToolId(toolId) {
        return internal.setActiveToolId(toolId);
    }
    /** Sets the active tool */
    static setActiveTool(tool) {
        return internal.setActiveTool(tool);
    }
    /** Gets the active tool's [[ToolInformation]] */
    static get activeToolInformation() {
        return internal.activeToolInformation;
    }
    /** Gets the Tool Setting React node of the active tool.
       * @return  Tool Setting React node of the active tool, or undefined if there is no active tool or Tool Settings for the active tool.
       * @internal
       */
    static get activeToolSettingsProvider() {
        return internal.activeToolSettingsProvider;
    }
    /** Sets the active layout, content group and active content.
       * @param contentLayoutDef  Content layout to make active
       * @param contentGroup  Content Group to make active
       */
    static async setActiveLayout(contentLayoutDef, contentGroup) {
        return internal.setActiveLayout(contentLayoutDef, contentGroup);
    }
    /** Sets the active layout, content group and active content.
       * @param contentGroup  Content Group to make active
       */
    static async setActiveContentGroup(contentGroup) {
        return internal.setActiveContentGroup(contentGroup);
    }
    /** Opens a modal Frontstage. Modal Frontstages can be stacked.
       * @param modalFrontstage  Information about the modal Frontstage
       */
    static openModalFrontstage(modalFrontstage) {
        return internal.openModalFrontstage(modalFrontstage);
    }
    /** Closes the top-most modal Frontstage.
       */
    static closeModalFrontstage() {
        return internal.closeModalFrontstage();
    }
    /** Updates the top-most modal Frontstage.
       */
    static updateModalFrontstage() {
        return internal.updateModalFrontstage();
    }
    /** Gets the top-most modal Frontstage.
       * @returns Top-most modal Frontstage, or undefined if there is none.
       */
    static get activeModalFrontstage() {
        return internal.activeModalFrontstage;
    }
    /** Gets the number of modal Frontstages.
       * @returns Modal Frontstage count
       */
    static get modalFrontstageCount() {
        return internal.modalFrontstageCount;
    }
    /** Sets the active Navigation Aid via its Id.
       * @param navigationAidId  Id of the Navigation Aid to set as active
       * @param iModelConnection IModelConnection to query for view data
       */
    static setActiveNavigationAid(navigationAidId, iModelConnection) {
        return internal.setActiveNavigationAid(navigationAidId, iModelConnection);
    }
    /** Sets the state of the widget with the given id
       * @param widgetId  Id of the Widget for which to set the state
       * @param state     New state of the widget
       * @returns true if the widget state was set successfully, or false if not.
       */
    static setWidgetState(widgetId, state) {
        return internal.setWidgetState(widgetId, state);
    }
    /** Finds a widget with the given id in the active frontstage
       * @param widgetId  Id of the Widget to find
       * @returns The WidgetDef with the given id, or undefined if not found.
       */
    static findWidget(widgetId) {
        return internal.findWidget(widgetId);
    }
    /** Opens a nested Frontstage. Nested Frontstages can be stacked.
       * @param nestedFrontstage  Information about the nested Frontstage
       */
    static async openNestedFrontstage(nestedFrontstage) {
        return internal.openNestedFrontstage(nestedFrontstage);
    }
    /** Closes the top-most nested Frontstage.
       */
    static async closeNestedFrontstage() {
        return internal.closeNestedFrontstage();
    }
    /** Gets the top-most nested Frontstage.
       * @returns Top-most nested Frontstage, or undefined if there is none.
       */
    static get activeNestedFrontstage() {
        return internal.activeNestedFrontstage;
    }
    /** Gets the number of nested Frontstages.
       * @returns Nested Frontstage count
       */
    static get nestedFrontstageCount() {
        return internal.nestedFrontstageCount;
    }
}
//# sourceMappingURL=FrontstageManager.js.map