import { CurrentTheme, PersistedTheme, ThemeSystemOptions } from '../types'; /** * Represents the theme system. */ export declare class ThemeManager { private readonly localStorageKey; /** * Media query to detect the user's preferred color scheme. * * @see {@link https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme} */ private readonly isDarkMediaQuery; /** * Initializes a new instance of the ThemeSystem class with the provided options. * * @param {ThemeSystemOptions} themeSystemOptions - The options for configuring the theme system. */ constructor(themeSystemOptions?: ThemeSystemOptions); /** * Retrieves the stored theme from local storage. * * @return {PersistedTheme} the stored theme, which can be 'light', 'dark' or 'auto'. */ private getPersistedTheme; /** * Retrieves the active theme based on the stored theme and the media query. * * @return {CurrentTheme} The active theme, which can be 'light' or 'dark'. */ getCurrentTheme(): CurrentTheme; /** * Sets the theme for the application and optionally stores it in local storage. * * @param {PersistedTheme} persistedTheme - the theme to be set * @param {boolean} [updateLocalStorage=true] - flag indicating whether to store the theme in local storage * @return {void} */ setTheme(persistedTheme: PersistedTheme, updateLocalStorage?: boolean): void; /** * The currently active theme. * * Can be 'light' or 'dark' */ readonly currentTheme: import('vue').Ref; /** * The currently stored theme. * * This is the theme that was last set, or 'light' if no theme has been set * yet. Can be 'light', 'dark', or 'auto'. */ readonly persistedTheme: import('vue').Ref; }