/** @packageDocumentation
 * @module SyncUi
 */
import type { IModelConnection } from "@itwin/core-frontend";
import { type UiSyncEvent } from "./UiSyncEvent.js";
/** 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?;
    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