/** @packageDocumentation
 * @module Utilities
 */
/// <reference types="react" />
import type { UiStateStorage } from "@itwin/core-react";
import type { UserSettingsProvider } from "../UiFramework";
/** Class that maintain UiShowHide user settings between sessions
 * @internal
 */
export declare class UiShowHideSettingsProvider implements UserSettingsProvider {
    private static _settingsNamespace;
    private static _autoHideUiKey;
    private static _useProximityOpacityKey;
    private static _snapWidgetOpacityKey;
    readonly providerId = "UiShowHideSettingsProvider";
    static initialize(): void;
    loadUserSettings(storage: UiStateStorage): Promise<void>;
    static storeAutoHideUi(v: boolean, storage?: UiStateStorage): Promise<void>;
    static storeUseProximityOpacity(v: boolean, storage?: UiStateStorage): Promise<void>;
    static storeSnapWidgetOpacity(v: boolean, storage?: UiStateStorage): Promise<void>;
}
/** The default inactivity time.
 * @internal
 */
export declare const INACTIVITY_TIME_DEFAULT = 3500; /** Wait 3.5 seconds */
/** Maintains Ui Show/Hide state. The `Ui` includes widgets, panels and the status bar.
 * @internal
 */
export declare class InternalUiShowHideManager {
    private static _isUiVisible;
    private static _autoHideUi;
    private static _showHidePanels;
    private static _showHideFooter;
    private static _inactivityTime;
    private static _timeout;
    private static _showUiTimeout;
    private static _useProximityOpacity;
    private static _snapWidgetOpacity;
    /** Determines if the Ui is visible */
    static get isUiVisible(): boolean;
    static set isUiVisible(visible: boolean);
    /** @public */
    static setAutoHideUi(value: boolean): void;
    /** @internal */
    static setUseProximityOpacity(value: boolean): void;
    /** @internal */
    static setSnapWidgetOpacity(value: boolean): void;
    /** Determines whether the `auto-hide Ui` feature is on. Defaults to false.
     * When true, the Ui automatically hides after a few seconds of inactivity.
     */
    static get autoHideUi(): boolean;
    static set autoHideUi(autoHide: boolean);
    /** Determines whether the widget panels are shown and hidden. Defaults to false. */
    static get showHidePanels(): boolean;
    static set showHidePanels(showHide: boolean);
    /** Determines whether the status bar is shown and hidden. Defaults to false. */
    static get showHideFooter(): boolean;
    static set showHideFooter(showHide: boolean);
    /** Determines the amount of inactivity time before the Ui is hidden. Defaults to 3.5 seconds. */
    static get inactivityTime(): number;
    static set inactivityTime(time: number);
    /** Determines whether the proximity of the mouse should alter the opacity of a toolbar. Defaults to true. */
    static get useProximityOpacity(): boolean;
    static set useProximityOpacity(value: boolean);
    /** Determines whether the opacity of a toolbar should snap. Defaults to false. */
    static get snapWidgetOpacity(): boolean;
    static set snapWidgetOpacity(value: boolean);
    /** Handler for when a Frontstage is ready */
    static handleFrontstageReady(): void;
    /** Handler for when the mouse moves over the content area */
    static handleContentMouseMove(_event?: React.MouseEvent<HTMLElement, MouseEvent>): void;
    /** Handler for when the mouse enters a widget */
    static handleWidgetMouseEnter(_event?: React.MouseEvent<HTMLElement, MouseEvent>): void;
    /** Shows the Ui and resets the inactivity timer */
    static showUiAndResetTimer(): void;
    /** Shows the Ui and cancels the inactivity timer */
    static showUiAndCancelTimer(): void;
    private static cancelTimer;
    private static resetTimer;
    private static showUi;
    private static hideUi;
    /** @internal */
    static terminate(): void;
}
//# sourceMappingURL=InternalUiShowHideManager.d.ts.map