/** @packageDocumentation * @module Widget */ import { BeUiEvent } from "@bentley/bentleyjs-core"; import { StagePanelLocation, StagePanelSection } from "@bentley/ui-abstract"; import { ZoneLocation } from "../zones/Zone"; import { WidgetDef } from "./WidgetDef"; /** Information about WidgetDefs in the WidgetManager * @internal */ export interface WidgetInfo { widgetDef: WidgetDef; stageId?: string; stageUsage?: string; location: ZoneLocation | StagePanelLocation; section: StagePanelSection; } /** Arguments of [[this.onWidgetsChanged]] event. * @internal */ export interface WidgetsChangedEventArgs { readonly items: ReadonlyArray; } /** Event class for [[this.onWidgetProvidersChanged]]. * @internal */ export declare class WidgetProvidersChangedEvent extends BeUiEvent { } /** Arguments of [[this.onWidgetProvidersChanged]] event. * @internal */ export interface WidgetProvidersChangedEventArgs { readonly providers: ReadonlyArray; } /** Event class for [[this.onWidgetsChanged]]. * @internal */ export declare class WidgetsChangedEvent extends BeUiEvent { } /** Widget Provider interface. * @beta */ export interface WidgetProvider { /** Id of provider */ readonly id: string; /** Get WidgetDefs matching the given criteria. * @note It is recommended to provide custom unique ids to returned widget defs. * Semi-stable id is used when auto-generated `widgetDef` id is detected, * but correctness of such id depends on widget index in the returned array. */ getWidgetDefs(stageId: string, stageUsage: string, location: ZoneLocation | StagePanelLocation, section?: StagePanelSection): ReadonlyArray | undefined; } /** Widget Manager class. * @beta */ export declare class WidgetManager { private _widgets; private _providers; /** Event raised when Widgets are changed. * @internal */ readonly onWidgetsChanged: WidgetsChangedEvent; /** Event raised when WidgetProviders are changed. * @internal */ readonly onWidgetProvidersChanged: WidgetProvidersChangedEvent; /** @internal */ get widgetCount(): number; /** @internal */ get widgets(): ReadonlyArray; set widgets(w: ReadonlyArray); /** 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: ZoneLocation | StagePanelLocation, section?: StagePanelSection): boolean; /** Removes a WidgetDef. */ removeWidgetDef(widgetId: string): boolean; /** @internal */ get providers(): ReadonlyArray; set providers(p: ReadonlyArray); /** Adds a WidgetDef Provider */ addWidgetProvider(widgetProvider: WidgetProvider): void; /** Removes a WidgetDef Provider */ removeWidgetProvider(providerId: string): boolean; private getStagePanelLocationFromZoneLocation; /** Gets WidgetDefs for a Frontstage location. */ getWidgetDefs(stageId: string, stageUsage: string, location: ZoneLocation | StagePanelLocation, section?: StagePanelSection): ReadonlyArray | undefined; } //# sourceMappingURL=WidgetManager.d.ts.map