/** @packageDocumentation
 * @module Settings
 */
import type { UiStateStorage } from "@itwin/core-react";
import { UiStateEntry } from "@itwin/core-react";
import type { UserSettingsProvider } from "../UiFramework.js";
import type { ThemeId } from "../theme/ThemeId.js";
/** Default values that may be specified for [[AppUiSettings]].
 * @public
 * @deprecated in 4.15.0. Interface used in a deprecated class {@link AppUiSettings}.
 */
export interface InitialAppUiSettings {
    colorTheme: ThemeId;
    dragInteraction: boolean;
    widgetOpacity: number;
    showWidgetIcon?: boolean;
    /** @alpha */
    autoCollapseUnpinnedPanels?: boolean;
    animateToolSettings?: boolean;
    useToolAsToolSettingsLabel?: boolean;
    toolbarOpacity: number;
}
/** These are the UI settings that are stored in the Redux store. They control the color theme,
 * how toolbar group buttons work, and the opacity of floating widget when the cursor
 * is not inside them. It is expect that an IModelApp using App UI components will create and register AppUiSettings with
 * defaults specific to their application. This would be done by calling the following.
 *
 * ```ts
 * UiFramework.registerUserSettingsProvider(new AppUiSettings(defaults));
 * ```
 * @public
 * @deprecated in 4.15.0. Use {@link @itwin/core-react#UiStateStorage} to persist UI settings.
 */
export declare class AppUiSettings implements UserSettingsProvider {
    readonly providerId = "AppUiSettingsProvider";
    private static _settingNamespace;
    private _settings;
    private _applyingLocalSettings;
    colorTheme: UiStateEntry<ThemeId>;
    dragInteraction: UiStateEntry<boolean>;
    widgetOpacity: UiStateEntry<number>;
    showWidgetIcon: UiStateEntry<boolean>;
    autoCollapseUnpinnedPanels: UiStateEntry<boolean>;
    animateToolSettings: UiStateEntry<boolean>;
    useToolAsToolSettingsLabel: UiStateEntry<boolean>;
    toolbarOpacity: UiStateEntry<number>;
    private setColorTheme;
    constructor(defaults: Partial<InitialAppUiSettings>);
    private handleSyncUiEvent;
    apply(storage: UiStateStorage): Promise<void>;
    loadUserSettings(storage: UiStateStorage): Promise<void>;
}
//# sourceMappingURL=AppUiSettings.d.ts.map