import { Renderer2, RendererFactory2 } from '@angular/core';
import { ThemeConfig, ThemeVariables } from './theme-config';
import { Platform } from '@angular/cdk/platform';
import * as i0 from "@angular/core";
export declare class CoreTheme {
    private rendererFactory;
    readonly _classNamePrefix?: string;
    readonly _enableSelectorsFn?: boolean;
    readonly classNamePrefix?: string;
    renderer: Renderer2;
    mediaStyleContainer: HTMLElement;
    primaryStyleContainer: HTMLElement;
    secondaryStyleContainer: HTMLElement;
    firstElement: HTMLElement;
    readonly themes: Set<string>;
    private _themeMap;
    private _styleMap;
    private _document;
    static classNamePrefix?: string;
    constructor(rendererFactory: RendererFactory2, _document: any, platform: Platform, _classNamePrefix?: string, _enableSelectorsFn?: boolean);
    initializeTheme(themeConfig: ThemeConfig[] | ThemeConfig, globalVariables: ThemeConfig): void;
    /**
     * add new theme
     * @param theme: ThemeVariables
     */
    private _add;
    hasTheme(theme: ThemeVariables | string): boolean;
    get(name: string): ThemeVariables;
    updateClassName(element: any, renderer: Renderer2, newClassname: string, oldClassname?: string): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<CoreTheme, [null, null, null, { optional: true; }, { optional: true; }]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<CoreTheme>;
}
