import { RendererFactory2 } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { Nullable } from '@fundamental-ngx/cdk/utils';
import { Observable } from 'rxjs';
import { BaseThemingConfig } from './config';
import { CompleteThemeDefinition, ThemeDefinition } from './interfaces/theme.interface';
import { ThemingConfig } from './interfaces/theming-config.interface';
import * as i0 from "@angular/core";
export declare class ThemingService {
    private _rendererFactory;
    private _document;
    private _activatedRoute;
    private readonly _providedConfig;
    /**
     * Theming configuration.
     */
    readonly config: BaseThemingConfig;
    /**
     * Observable of the current theme, applied to the application.
     */
    get currentTheme(): Observable<CompleteThemeDefinition | null>;
    /** @hidden */
    private readonly _renderer;
    /** @hidden */
    private readonly _availableThemes;
    /** @hidden */
    private readonly _standardThemes;
    /** @hidden **/
    private readonly _destroyRef;
    /** @hidden */
    private readonly _currentThemeSubject;
    /**
     * @hidden
     */
    constructor(_rendererFactory: RendererFactory2, _document: Document, _activatedRoute: ActivatedRoute, _providedConfig: Partial<ThemingConfig>);
    /**
     * Initiates theme change based on query parameter or provided default theme in config.
     */
    init(): void;
    /**
     * Sets defined theme.
     * @param themeId ID of theme that needs to be used by the application.
     */
    setTheme(themeId: string): boolean;
    /**
     * Returns array of available themes.
     */
    getThemes(): CompleteThemeDefinition[];
    /**
     * Returns current theme definition.
     */
    getCurrentTheme(): Nullable<ThemeDefinition>;
    /**
     * @hidden
     * @param type
     * @param resourceUrl
     * @private
     */
    private _setThemeResource;
    /**
     * @hidden
     * @param type
     * @private
     */
    private _getStyleLinkElement;
    /**
     * @hidden
     * @param themes
     * @private
     */
    private _formatProvidedThemes;
    /** @hidden */
    private _getThemingResourceConfig;
    /** @hidden */
    private _getNativeParameterByName;
    /**
     * @hidden
     * Set theme according to additional URL parameter.
     * This parameter can be changed in function argument.
     **/
    private _setThemeByRoute;
    static ɵfac: i0.ɵɵFactoryDeclaration<ThemingService, [null, null, { optional: true; }, { optional: true; }]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ThemingService>;
}
