/** @packageDocumentation
 * @module Toolbar
 */
import { BeEvent } from "@itwin/core-bentley";
import type { ToolbarItem } from "./ToolbarItem.js";
/** Arguments of [[ToolbarItemsManager.onChanged]] event.
 * @internal
 */
export interface ToolbarItemsChangedArgs {
    readonly items: ReadonlyArray<ToolbarItem>;
}
/**
 * Controls status bar items.
 * @internal
 * @deprecated in 4.4.0. This is no longer used internally, left because of an erroneous public dependency that is also deprecated.
 */
export declare class ToolbarItemsManager {
    protected _items: ReadonlyArray<ToolbarItem>;
    constructor(items?: ReadonlyArray<ToolbarItem>);
    /** Event raised when Toolbar items are changed.
     * @internal
     */
    readonly onItemsChanged: BeEvent<(args: ToolbarItemsChangedArgs) => void>;
    private loadItemsInternal;
    /** load items but do not fire onItemsChanged
     * @internal
     */
    loadItems(items: ReadonlyArray<ToolbarItem>): void;
    /** Get an array of the Toolbar items  */
    get items(): ReadonlyArray<ToolbarItem>;
    set items(items: ReadonlyArray<ToolbarItem>);
    add(itemOrItems: ToolbarItem | ReadonlyArray<ToolbarItem>): void;
    /** Remove Toolbar items based on id */
    remove(itemIdOrItemIds: ToolbarItem["id"] | ReadonlyArray<ToolbarItem["id"]>): void;
    /** @internal */
    removeAll(): void;
    private static gatherSyncIds;
    static getSyncIdsOfInterest(items: readonly ToolbarItem[]): string[];
    private static refreshChildItems;
    private internalRefreshAffectedItems;
    refreshAffectedItems(eventIds: Set<string>): void;
    private static isActiveToolIdRefreshRequiredForChildren;
    private isActiveToolIdRefreshRequired;
    private static refreshActiveToolIdInChildItems;
    setActiveToolId(toolId: string): void;
}
//# sourceMappingURL=ToolbarItemsManager.d.ts.map