/** @packageDocumentation
 * @module State
 */
import * as React from "react";
/** System preferred color theme.
 * @public
 */
export declare const SYSTEM_PREFERRED_COLOR_THEME = "SYSTEM_PREFERRED";
/** Enum for the Color Theme string.
 * @public
 */
export declare enum ColorTheme {
    /** Will use iTwinUI `light` theme. */
    Light = "light",
    /** Will use iTwinUI `dark` theme. */
    Dark = "dark",
    /** Will use iTwinUI `os` theme. */
    System = "SYSTEM_PREFERRED",
    /** Will use iTwinUI wrapping `ThemeProvider` if provided, or default to 'Light' */
    Inherit = "inherit",
    /** Will use iTwinUI `light` theme with `highContrast` set to `true` */
    HighContrastLight = "high-contrast-light",
    /** Will use iTwinUI `dark` theme with `highContrast` set to `true` */
    HighContrastDark = "high-contrast-dark"
}
/**
 * Describe valid themes.
 * See [[ThemeManager]] for more information.
 * @public
 */
export type ThemeId = `${ColorTheme}` | (string & {});
/** The default widget opacity.
 * @public
 */
export declare const WIDGET_OPACITY_DEFAULT = 0.9;
/** The default widget opacity.
 * @public
 */
export declare const TOOLBAR_OPACITY_DEFAULT = 0.5;
/** Properties of [[ThemeManagerComponent]].
 */
interface ThemeManagerProps {
    /** theme ("light", "dark", etc.) */
    theme: ThemeId;
    widgetOpacity: number;
    children?: React.ReactNode;
    toolbarOpacity: number;
}
/** ThemeManagerComponent handles setting themes.
 */
declare class ThemeManagerComponent extends React.Component<ThemeManagerProps> {
    componentDidMount(): void;
    componentDidUpdate(prevProps: ThemeManagerProps): void;
    private _setTheme;
    private _setWidgetOpacity;
    private _setToolbarOpacity;
    render(): React.ReactNode;
}
/** ThemeManager handles setting color themes and element opacity management. Note that this component will
 * affect the entire application by setting the data-theme attribute to the html element.
 * It also sets an iTwinUI `ThemeProvider` element locally, so all elements
 * within the AppUI tree will have the same theme, and should be using iTwinUI 2.x or later.
 * A `ColorTheme` enum values will configure iTwinUI `ThemeProvider` accordingly.
 * Any other string will only apply the `data-theme` attribute to the `html` element
 * and `ThemeProvider` theme will be set to `inherit`, in this case the application is
 * responsible for setting the theme by overriding iTwinUI css variables.
 *
 * This React component is Redux connected and should wrap [[ConfigurableUiContent]].
 *
 * ```tsx
 * <Provider store={UiFramework.store}>
 *   <ThemeManager>
 *     <ConfigurableUiContent />
 *   </ThemeManager>
 * </Provider>
 * ```
 * @public
 */
export declare const ThemeManager: import("react-redux").ConnectedComponent<typeof ThemeManagerComponent, import("react-redux").Omit<React.ClassAttributes<ThemeManagerComponent> & ThemeManagerProps, "theme" | "widgetOpacity" | "toolbarOpacity">>;
export {};
//# sourceMappingURL=ThemeManager.d.ts.map