/**
* @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 `` component.
*/
export declare class ElIconLibraries {
protected packs: Map;
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;
}