import { ThemeName, BackgroundMode } from "../components/theme/Theme";
/**
 * ThemeManager is a class that manages the global theme state.
 * It provides observable properties that can be observed by other classes
 * to set properties on their components, such as whether dark mode is enabled.
 */
declare class ThemeManager {
    /**
     * Observable property to indicate if dark mode is enabled
     * Is needed by components styled outside of the web components
     */
    isDarkMode: boolean;
    /**
     * Observable property to store the current theme name
     */
    themeName: ThemeName;
    /**
     * Observable property to store the current background mode
     */
    backgroundMode: BackgroundMode;
    /**
     * Observable property to indicate if visual rebrand is enabled
     * Will be used to allow users to toggle to updated visuals
     */
    isVisualRebrandEnabled: boolean;
    /**
     * Observable property to indicate if Momentum Avatar is enabled
     * Should be used to set the new momentum style on avatars and sue
     * correct momentum presence states
     */
    isMomentumAvatarEnabled: boolean;
    /**
     * Computed property to check if the current theme is Momentum V2.
     * @returns {boolean} True if the current theme is Momentum V2, otherwise false
     */
    get isMomentumV2Enabled(): boolean;
    constructor(other?: Partial<ThemeManager>);
    /**
     * Action to update multiple properties of the ThemeManager.
     * This method allows batch updates to the observable properties.
     * @param {Partial<ThemeManager>} other - An object containing the properties to update.
     */
    update(other: Partial<ThemeManager>): void;
    /**
     * Action to set the dark mode state.
     * @param {boolean} value - The new value for dark mode.
     */
    setDarkMode(value: boolean): void;
    /**
     * Action to set the theme name.
     * @param {ThemeName} value - The new theme name.
     */
    setThemeName(value: ThemeName): void;
    /**
     * Action to set the theme name.
     * @param {ThemeName} value - The new theme name.
     */
    setBackgroundMode(value: BackgroundMode): void;
    /**
     * Action to enable or disable the visual rebrand.
     * @param {boolean} value - The new value for visual rebrand.
     */
    setVisualRebrandEnabled(value: boolean): void;
    /**
     * Action to enable or disable the Momentum Avatar feature.
     * @param {boolean} value - The new value for Momentum Avatar.
     */
    setMomentumAvatar(value: boolean): void;
}
declare const themeManager: ThemeManager;
/**
 * Registers the ThemeManager globally for access from any JavaScript bundle
 * @param globalName - Optional custom global name (defaults to 'MomentumUIThemeManager')
 * @param instance - Optional specific instance to register (defaults to default themeManager)
 */
export declare function registerThemeManagerGlobally(globalName?: string, instance?: ThemeManager): void;
declare global {
    interface Window {
        MomentumUIThemeManager?: ThemeManager;
    }
    interface Global {
        MomentumUIThemeManager?: ThemeManager;
    }
    var MomentumUIThemeManager: ThemeManager | undefined;
}
export { themeManager, ThemeManager };
