/** @packageDocumentation
 * @module SyncUi
 */
import type { IModelConnection } from "@itwin/core-frontend";
import type { UiSyncEvent } from "./UiSyncEvent";
/** Event Id used to sync UI components. Used to refresh visibility or enable state of control.
 * @public
 */
export declare enum SyncUiEventId {
    /** AccuDraw compass mode has changed. */
    AccuDrawCompassModeChanged = "accudrawcompassmodechanged",
    /** AccuDraw rotation has changed. */
    AccuDrawRotationChanged = "accudrawrotationchanged",
    /** The active content as maintained by the ContentViewManager has changed. */
    ActiveContentChanged = "activecontentchanged",
    /** The active view maintained by the ViewManager has changed. */
    ActiveViewportChanged = "activeviewportchanged",
    /** Backstage has been toggled. */
    BackstageEvent = "backstageevent",
    /** A Content Layout has been activated.  */
    ContentLayoutActivated = "contentlayoutactivated",
    /** A Content Control maintained by UiFramework.frontstages has been activated. */
    ContentControlActivated = "contentcontrolactivated",
    /** A Frontstage is activating. */
    FrontstageActivating = "frontstageactivating",
    /** A Frontstage has been activated and the content has been assigned. */
    FrontstageReady = "frontstageready",
    /** A Modal Frontstage has been opened or closed. */
    ModalFrontstageChanged = "modalfrontstagechanged",
    /** A Modal Dialog has been opened or closed. */
    ModalDialogChanged = "modaldialogchanged",
    /** A NavigationAid has been activated. */
    NavigationAidActivated = "navigationaidactivated",
    /** An InteractiveTool has been activated via the ToolAdmin. */
    ToolActivated = "toolactivated",
    /** The state of a Widget has changed. */
    WidgetStateChanged = "widgetstatechanged",
    /** The SelectionSet for the active IModelConnection has changed. */
    SelectionSetChanged = "selectionsetchanged",
    /** The list of settings providers registered with SettingsManager has changed. */
    SettingsProvidersChanged = "settingsproviderschanged",
    /** The current view state has changed (used by view undo/redo toolbar buttons). */
    ViewStateChanged = "viewstatechanged",
    /** The current object the reads and write UI State has changed. */
    UiStateStorageChanged = "uistatestoragechanged",
    ShowHideManagerSettingChange = "show-hide-setting-change",
    /** The list of feature overrides applied has been changed */
    FeatureOverridesChanged = "featureoverrideschanged",
    ViewedModelsChanged = "viewedmodelschanged"
}
/** This class is used to send eventIds to interested UI components so the component can determine if it needs
 * to refresh its display by calling setState on itself.
 * @public
 */
export declare class SyncUiEventDispatcher {
    private static _uiEventDispatcher;
    private static _unregisterFuncs;
    private static _connectionUnregisterFuncs;
    private static _iModelConnection?;
    /** @internal - used for testing only */
    static setTimeoutPeriod(period: number): void;
    /** Return set of event ids that will be sent to listeners/. */
    static get syncEventIds(): Set<string>;
    /** Return SyncUiEvent so callers can register an event callback. */
    static get onSyncUiEvent(): UiSyncEvent;
    /** Immediately trigger sync event processing. */
    static dispatchImmediateSyncUiEvent(eventId: string): void;
    /** Save eventId in Set for processing. */
    static dispatchSyncUiEvent(eventId: string): void;
    /** Save multiple eventIds in Set for processing. */
    static dispatchSyncUiEvents(eventIds: string[]): void;
    /** Checks to see if an eventId of interest is contained in the set of eventIds */
    static hasEventOfInterest(eventIds: Set<string>, idsOfInterest: string[]): boolean;
    private static _dispatchViewChange;
    private static _dispatchFeatureOverridesChange;
    private static _dispatchViewedModelsChanged;
    /** Initializes the Monitoring of Events that trigger dispatching sync events */
    static initialize(): void;
    /** This should be called by IModelApp when the active IModelConnection is closed. */
    static clearConnectionEvents(iModelConnection: IModelConnection): void;
    /** This should be called by IModelApp when the active IModelConnection is established. */
    static initializeConnectionEvents(iModelConnection: IModelConnection): void;
}
//# sourceMappingURL=SyncUiEventDispatcher.d.ts.map