import { RendererFactory2 } from "@angular/core";
import { ActivatedRoute, Router } from "@angular/router";
import { BehaviorSubject } from "rxjs";
import * as i0 from "@angular/core";
/** @dynamic */
export declare class ThemeSwitchService {
    private rendererFactory;
    private router;
    private _route;
    private document;
    /** @ignore BehaviorSubject indicating whether we should display theme switcher */
    showThemeSwitcherSubject: BehaviorSubject<boolean>;
    /** BehaviorSubject indicating whether dark mode is enabled */
    isDarkModeEnabledSubject: BehaviorSubject<boolean | null>;
    /** Should route be refreshed after theme switching */
    withRefreshRoute: boolean;
    /** Keep information about preferred dark color scheme on OS */
    private darkThemePreference;
    private renderer;
    constructor(rendererFactory: RendererFactory2, router: Router, _route: ActivatedRoute, document: Document);
    /**
     * Use this method to manually toggle your app between light and dark theme
     *
     * @param isDarkModeEnabled Use true for dark theme and false for light theme
     */
    setDarkTheme(isDarkModeEnabled: boolean): void;
    /**
     * Use this method to configure the service to synchronize your app's theme with the user's
     * light/dark mode system preference
     */
    enableColorSchemePreferenceHandling(): void;
    /**
     * Use this method to disable synchronization of your app's theme with the user's light/dark mode
     * system preference
     */
    disableColorSchemePreferenceHandling(): void;
    private darkModePreferenceHandler;
    private reInitRoute;
    static ɵfac: i0.ɵɵFactoryDeclaration<ThemeSwitchService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ThemeSwitchService>;
}
export default ThemeSwitchService;
