/**
 * @license
 * Copyright Endlessjs. All Rights Reserved.
 * Licensed under the MIT License. See License.txt in the project root for license information.
 */
import { ElFontIconPackParams, ElIconPack, ElIconPackParams, ElIcons } from './icon-pack';
import { ElFontIcon, ElIcon, ElSvgIcon } from './icon';
export declare class ElIconDefinition {
    name: string;
    type: string;
    pack: string;
    icon: ElIcon;
}
/**
 * This service allows to register multiple icon packs to use them later within `<el-icon></el-icon>` component.
 */
export declare class ElIconLibraries {
    protected packs: Map<string, ElIconPack>;
    protected defaultPack: ElIconPack;
    /**
     * Registers new Svg icon pack
     * @param {string} name
     * @param {ElIcon} icons
     * @param {ElIconPackParams} params
     */
    registerSvgPack(name: string, icons: ElIcons, params?: ElIconPackParams): void;
    /**
     * Registers new font pack
     * @param {string} name
     * @param {ElIconPackParams} params
     */
    registerFontPack(name: string, params?: ElFontIconPackParams): void;
    /**
     * Returns pack by name
     * @param {string} name
     */
    getPack(name: string): ElIconPack;
    /**
     * Sets pack as a default
     * @param {string} name
     */
    setDefaultPack(name: string): void;
    /**
     * Returns Svg icon
     * @param {string} name
     * @param {string} pack
     *
     * @returns ElIconDefinition
     */
    getSvgIcon(name: string, pack?: string): ElIconDefinition;
    /**
     * Returns Font icon
     * @param {string} name
     * @param {string} pack
     *
     * @returns ElIconDefinition
     */
    getFontIcon(name: string, pack?: string): ElIconDefinition;
    /**
     * Returns an icon
     * @param {string} name
     * @param {string} pack
     *
     * @returns ElIconDefinition
     */
    getIcon(name: string, pack?: string): ElIconDefinition;
    protected createSvgIcon(name: string, content: ElIcon | string, params: ElIconPackParams): ElSvgIcon;
    protected createFontIcon(name: string, content: ElIcon | string, params: ElFontIconPackParams): ElFontIcon;
    protected getPackOrThrow(name: string): ElIconPack;
    protected getDefaultPackOrThrow(): ElIconPack;
    protected getIconFromPack(name: string, pack: ElIconPack, shouldThrow?: boolean): ElIcon | string;
}
