/** @packageDocumentation
 * @module UiProvider
 */
import type { BeUiEvent } from "@itwin/core-bentley";
import type { UiItemsManager as AbstractUiItemsManagerType } from "@itwin/appui-abstract";
import type { UiItemsManager, UiItemsProviderOverrides, UiItemsProviderRegisteredEventArgs } from "./UiItemsManager.js";
import { StagePanelLocation } from "../stagepanels/StagePanelLocation.js";
import { StagePanelSection } from "../stagepanels/StagePanelSection.js";
import type { Widget } from "../widgets/Widget.js";
import type { ProviderItem } from "./ProviderItem.js";
import type { UiItemsProvider } from "./UiItemsProvider.js";
import type { ToolbarItem, ToolbarOrientation, ToolbarUsage } from "../toolbar/ToolbarItem.js";
import type { BackstageItem } from "../backstage/BackstageItem.js";
import type { StatusBarItem } from "../statusbar/StatusBarItem.js";
/** @internal */
export declare function createAbstractUiItemsManagerAdapter(): AbstractUiItemsManagerAdapter | undefined;
type Target = Pick<typeof UiItemsManager, "getToolbarButtonItems" | "getStatusBarItems" | "getBackstageItems" | "register" | "getUiItemsProvider" | "registeredProviderIds" | "hasRegisteredProviders" | "unregister" | "onUiProviderRegisteredEvent" | "clearAllProviders">;
declare class AbstractUiItemsManagerAdapter implements Target {
    private readonly _adaptee;
    constructor(_adaptee: typeof AbstractUiItemsManagerType);
    clearAllProviders(): void;
    get onUiProviderRegisteredEvent(): BeUiEvent<UiItemsProviderRegisteredEventArgs>;
    unregister(providerId: string): void;
    get hasRegisteredProviders(): boolean;
    get registeredProviderIds(): string[];
    register(provider: UiItemsProvider, overrides?: UiItemsProviderOverrides | undefined): void;
    getUiItemsProvider(providerId: string): UiItemsProvider | undefined;
    getBackstageItems(): readonly ProviderItem<BackstageItem>[];
    getStatusBarItems(stageId: string, stageUsage: string): readonly ProviderItem<StatusBarItem>[];
    getToolbarButtonItems(stageId: string, stageUsage: string, usage: ToolbarUsage, orientation: ToolbarOrientation): readonly ProviderItem<ToolbarItem>[];
    getWidgets(stageId: string, stageUsage: string, location: StagePanelLocation, section?: StagePanelSection | undefined): readonly ProviderItem<Widget>[];
}
/** Maps items of existing `get` properties to `provide` properties, otherwise uses `provide` properties.
 * @internal
 */
export declare function createGetPropertyAdapter(provider: UiItemsProvider): {
    provideBackstageItems: () => readonly BackstageItem[];
    provideStatusBarItems: (stageId: string, stageUsage: string) => readonly StatusBarItem[];
    provideToolbarItems: (stageId: string, stageUsage: string, usage: ToolbarUsage, orientation: ToolbarOrientation) => readonly ToolbarItem[];
    provideWidgets: (stageId: string, stageUsage: string, location: StagePanelLocation, section: StagePanelSection | undefined) => readonly Widget[];
    id: string;
    getToolbarItems?: () => ReadonlyArray<ToolbarItem>;
    getStatusBarItems?: () => ReadonlyArray<StatusBarItem>;
    getBackstageItems?: () => ReadonlyArray<BackstageItem>;
    getWidgets?: () => ReadonlyArray<Widget>;
    onUnregister?: () => void;
};
export {};
//# sourceMappingURL=AbstractUiItemsManager.d.ts.map