/** @packageDocumentation
 * @module ConfigurableUi
 */
import type { ConfigurableUiControlConstructor, ConfigurableUiElement } from "./ConfigurableUiControl";
import { ActivityTracker } from "./ActivityTracker";
import { BeUiEvent } from "@itwin/core-bentley";
/** Configurable Ui Manager maintains controls, Frontstages, Content Groups, Content Layouts, Tasks and Workflows.
 * @internal
 */
export declare class InternalConfigurableUiManager {
    private static _registeredControls;
    private static _initialized;
    /** @internal */
    static readonly activityTracker: ActivityTracker;
    /** @internal */
    static readonly onUiActivityEvent: BeUiEvent<{
        event: Event;
    }>;
    /** @internal */
    static readonly onUiIntervalEvent: BeUiEvent<{
        idleTimeout?: number | undefined;
    }>;
    /** Initializes the InternalConfigurableUiManager and registers core controls.
     * @internal
     */
    static initialize(): void;
    /** Registers a control implementing the [[ConfigurableUiElement]] interface.
     * These controls can be a
     * [[ContentControl]],
     * [[NavigationAidControl]],
     * [[StatusBarWidgetControl]],
     * [[WidgetControl]] or
     * [ToolUiProvider]($appui-react).
     * @param classId the class id of the control to register
     * @param constructor the constructor of the control to register
     */
    static register(classId: string, constructor: ConfigurableUiControlConstructor): void;
    /** Determines if a control has been registered based on its classId.
     * @param classId   the class id of the control to test
     * @returns  true if the control is registered or false if not
     */
    static isRegistered(classId: string): boolean;
    /** Determines if a control has been registered.
     * @internal
     */
    static getConstructorClassId(constructor: ConfigurableUiControlConstructor): string | undefined;
    /** Unregisters a control that has been registered.
     * @param classId   the class id of the control to unregister
     */
    static unregister(classId: string): void;
    /** Creates a control registered by calling registerControl.
     * @param classId   the class id of the control to create
     * @param uniqueId  a unique id for the control
     * @param options   options passed to the constructor of the control
     * @param controlId controlId which may not be unique across all control instances.
     * @returns  the created control
     */
    static create(classId: string, uniqueId: string, options?: any, controlId?: string): ConfigurableUiElement | undefined;
    /** Gets the HTML wrapper element for Configurable UI */
    static getWrapperElement(): HTMLElement;
    /** Assists in the transition to context wrapper exported from Configurable UI */
    static getWrapperDocument(): Document;
    /** Closes all UI popups currently open */
    static closeUi(): void;
}
//# sourceMappingURL=InternalConfigurableUiManager.d.ts.map