/**
 * @license
 * Copyright Endlessjs. All Rights Reserved.
 * Licensed under the MIT License. See License.txt in the project root for license information.
 */
import { ElJSThemeOptions } from './js-themes/theme.options';
export declare const BUILT_IN_THEMES: ElJSThemeOptions[];
/**
 * Js Themes registry - provides access to the JS themes' variables.
 * Usually shouldn't be used directly, but through the ElThemeService class methods (getJsTheme).
 */
export declare class ElJSThemesRegistry {
    private themes;
    constructor(builtInThemes: ElJSThemeOptions[], newThemes?: ElJSThemeOptions[]);
    /**
     * Registers a new JS theme
     * @param config any
     * @param themeName string
     * @param baseTheme string
     */
    register(config: any, themeName: string, baseTheme: string): void;
    /**
     * Checks whether the theme is registered
     * @param themeName
     * @returns boolean
     */
    has(themeName: string): boolean;
    /**
     * Return a theme
     * @param themeName
     * @returns ElJSThemeOptions
     */
    get(themeName: string): ElJSThemeOptions;
    private combineByNames;
    private isObject;
    private mergeDeep;
}
