import { RFontIconPackParams, RIconPack, RIconPackParams, RIcons } from './icon-pack';
import { RFontIcon, RIcon, RSvgIcon } from './icon';
export declare class RIconDefinition {
    name: string;
    type: string;
    pack: string;
    icon: RIcon;
}
/**
 * This service allows to register multiple icon packs to use them later within `<r-icon></r-icon>` component.
 */
export declare class RIconLibrary {
    protected packs: Map<string, RIconPack>;
    protected defaultPack: RIconPack;
    /**
     * Registers new Svg icon pack
     * @param {string} name
     * @param {RIcon} icons
     * @param {RIconPackParams} params
     */
    registerSvgPack(name: string, icons: RIcons, params?: RIconPackParams): void;
    /**
     * Registers new font pack
     * @param {string} name
     * @param {RIconPackParams} params
     */
    registerFontPack(name: string, params?: RFontIconPackParams): void;
    /**
     * Returns pack by name
     * @param {string} name
     */
    getPack(name: string): RIconPack;
    /**
     * Sets pack as a default
     * @param {string} name
     */
    setDefaultPack(name: string): void;
    /**
     * Returns Svg icon
     * @param {string} name
     * @param {string} pack
     *
     * @returns RIconDefinition
     */
    getSvgIcon(name: string, pack?: string): RIconDefinition | null;
    /**
     * Returns Font icon
     * @param {string} name
     * @param {string} pack
     *
     * @returns RIconDefinition
     */
    getFontIcon(name: string, pack?: string): RIconDefinition;
    /**
     * Returns an icon
     * @param {string} name
     * @param {string} pack
     *
     * @returns RIconDefinition
     */
    getIcon(name: string, pack?: string): RIconDefinition | null;
    protected createSvgIcon(name: string, content: RIcon | string, params: RIconPackParams): RSvgIcon;
    protected createFontIcon(name: string, content: RIcon | string, params: RFontIconPackParams): RFontIcon;
    protected getPackOrThrow(name: string): RIconPack;
    protected getDefaultPackOrThrow(): RIconPack;
    protected getIconFromPack(name: string, pack: RIconPack): RIcon | string | null;
}
