/** @packageDocumentation
 * @module Widget
 */
import { BeUiEvent } from "@itwin/core-bentley";
import { WidgetDef } from "./WidgetDef";
import { StagePanelLocation } from "../stagepanels/StagePanelLocation";
import { StagePanelSection } from "../stagepanels/StagePanelSection";
/** Information about WidgetDefs in the WidgetManager
 * @internal
 */
export interface WidgetInfo {
    widgetDef: WidgetDef;
    stageId?: string;
    stageUsage?: string;
    location: StagePanelLocation;
    section: StagePanelSection;
}
/** Widget Manager class.
 * @beta
 */
export declare class WidgetManager {
    private _widgets;
    /** Event raised when Widgets are changed.
     * @internal
     */
    readonly onWidgetsChanged: BeUiEvent<{
        readonly items: ReadonlyArray<WidgetInfo>;
    }>;
    /** @internal */
    get widgetCount(): number;
    /** @internal */
    get widgets(): ReadonlyArray<WidgetInfo>;
    set widgets(w: ReadonlyArray<WidgetInfo>);
    /** Adds a WidgetDef for use in a Frontstage.
     * @note Added `widgetDef` must return unique id to correctly save/restore App layout.
     * Semi-stable id is generated when auto-generated `widgetDef` id is detected,
     * but correctness of such id depends on `addWidgetDef` call order and widget location.
     */
    addWidgetDef(widgetDef: WidgetDef, stageId: string | undefined, stageUsage: string | undefined, location: StagePanelLocation, section?: StagePanelSection): boolean;
    /** Removes a WidgetDef.
     */
    removeWidgetDef(widgetId: string): boolean;
    /** Gets WidgetDefs for a Frontstage location.
     */
    getWidgetDefs(stageId: string, stageUsage: string, location: StagePanelLocation, section?: StagePanelSection): ReadonlyArray<WidgetDef> | undefined;
}
//# sourceMappingURL=WidgetManager.d.ts.map