/**
 * @typedef {import('lit-html').nothing} nothing
 * @typedef {import('lit').TemplateResult} TemplateResult
 */
export class IconManager {
    /** @private */
    private __iconResolvers;
    /**
     * Adds an icon resolver for the given namespace. An icon resolver is a
     * function which takes an icon set and an icon name and returns an svg
     * icon as a TemplateResult. This function can be sync or async.
     *
     * @param {string} namespace
     * @param {(iconset: string, icon: string) => TemplateResult | Promise<TemplateResult> | nothing | Promise<nothing> } iconResolver
     */
    addIconResolver(namespace: string, iconResolver: (iconset: string, icon: string) => TemplateResult | Promise<TemplateResult> | nothing | Promise<nothing>): void;
    /**
     * Removes an icon resolver for a namespace.
     * @param {string} namespace
     */
    removeIconResolver(namespace: string): void;
    /**
     * Resolves icon for the given parameters. Returns the icon as a svg string.
     *
     * @param {string} namespace
     * @param {string} iconset
     * @param {string} icon
     * @returns {Promise<TemplateResult>}
     */
    resolveIcon(namespace: string, iconset: string, icon: string): Promise<TemplateResult>;
    /**
     * Resolves icon for the given icon id. Returns the icon as a svg string.
     *
     * @param {string} iconId
     * @returns {Promise<TemplateResult>}
     */
    resolveIconForId(iconId: string): Promise<TemplateResult>;
}
export type nothing = typeof import("lit-html").nothing;
export type TemplateResult = import('lit').TemplateResult;
//# sourceMappingURL=IconManager.d.ts.map