import { BehaviorSubject } from 'rxjs';
import * as i0 from "@angular/core";
export declare enum ThemeOption {
    LIGHT = "light",
    DARK = "dark",
    AUTO = "auto"
}
export declare class ThemeService {
    /**
     * Indicates if the light theme is active.
     */
    lightToggle: boolean;
    /**
     * Indicates if the dark theme is active.
     */
    darkToggle: boolean;
    /**
     * Indicates if the auto theme is active.
     */
    autoToggle: boolean;
    /**
     * The current selected theme option.
     */
    currentOption: ThemeOption;
    /**
     * Enum with all available theme options.
     */
    themeOptions: typeof ThemeOption;
    /**
     * Whether the system prefers dark mode.
     */
    prefersDark: boolean;
    /**
     * The default theme option.
     */
    default: ThemeOption;
    /**
     * Observable for the current theme.
     */
    theme: BehaviorSubject<ThemeOption>;
    private readonly isBrowser;
    constructor(platformId: Object);
    private handleAutoConfiguration;
    private handleDarkPreference;
    private handleLightPreference;
    /**
     * Returns true if the system prefers dark mode.
     */
    get IsDark(): boolean;
    /**
     * Gets the current theme option.
     */
    get Theme(): ThemeOption;
    /**
     * Sets the current theme option and persists it.
     */
    set Theme(theme: ThemeOption);
    /**
     * Toggles a theme class on the document body.
     * @param name The theme name
     * @param shouldAdd Whether to add or remove the class
     *
     * Ionic 8 (`dark.class.css` palette) usa `.ion-palette-dark` en `<html>` para
     * conmutar el tema dark; en versiones previas leía `body.dark`. Mantenemos
     * el toggle sobre `body.{name}` por compat con código legacy, y además
     * espejamos `ion-palette-dark` en `<html>` cuando `name === 'dark'` — esto
     * es lo que las apps en Ionic 8 necesitan para que el palette aplique.
     */
    toggleTheme(name: string, shouldAdd: boolean): void;
    /**
     * Sets the user theme preference and updates toggles and theme classes.
     * @param option The selected theme option
     */
    toggleUserPreference(option: ThemeOption): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ThemeService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ThemeService>;
}
