/** @packageDocumentation
 * @module Backstage
 */
import { BeEvent } from "@itwin/core-bentley";
import type { BackstageItem } from "./BackstageItem.js";
/** Arguments of [[BackstageItemsManager.onChanged]] event.
 * @internal
 */
export interface BackstageItemsChangedArgs {
    readonly items: ReadonlyArray<BackstageItem>;
}
/**
 * Controls backstage items.
 * @internal
 */
export declare class BackstageItemsManager {
    private _items;
    constructor(items?: ReadonlyArray<BackstageItem>);
    private loadItemsInternal;
    /** load items but do not fire onItemsChanged
     * @internal
     */
    loadItems(items: ReadonlyArray<BackstageItem>): void;
    /** Event raised when backstage items are changed.
     * @internal
     */
    readonly onItemsChanged: BeEvent<(args: BackstageItemsChangedArgs) => void>;
    get items(): ReadonlyArray<BackstageItem>;
    set items(items: ReadonlyArray<BackstageItem>);
    /** @internal */
    add(itemOrItems: BackstageItem | ReadonlyArray<BackstageItem>): void;
    /** @internal */
    remove(itemIdOrItemIds: BackstageItem["id"] | ReadonlyArray<BackstageItem["id"]>): void;
    /** @internal */
    static getSyncIdsOfInterest(items: readonly BackstageItem[]): string[];
    private internalRefreshAffectedItems;
    refreshAffectedItems(eventIds: Set<string>): void;
}
//# sourceMappingURL=BackstageItemsManager.d.ts.map