import { SafeHtml, SafeResourceUrl } from '@angular/platform-browser';
import { Observable } from 'rxjs';
import * as i0 from "@angular/core";
export interface KbqIconOptions {
viewBox?: string;
withCredentials?: boolean;
}
export declare class KbqIconRegistry {
private readonly sanitizer;
private readonly document;
private readonly httpClient;
private readonly iconsConfig;
private readonly resolvers;
/** Individual icon configs, keyed by "namespace:name". */
private readonly iconConfigs;
/** Icon-set configs per namespace. */
private readonly iconSetConfigs;
/** In-progress URL fetches to dedupe concurrent requests. */
private readonly inProgressUrlFetches;
/** Cached parsed SVG sets, keyed by URL string. */
private readonly cachedIconSets;
constructor();
/** Registers an SVG icon by URL in the default namespace. */
addSvgIcon(name: string, url: SafeResourceUrl, options?: KbqIconOptions): void;
/** Registers an SVG icon from an inline HTML string in the default namespace. */
addSvgIconLiteral(name: string, literal: SafeHtml, options?: KbqIconOptions): void;
/** Registers an SVG icon by URL under the given namespace. */
addSvgIconInNamespace(namespace: string, name: string, url: SafeResourceUrl, options?: KbqIconOptions): void;
/** Registers an SVG icon from an inline HTML string under the given namespace. */
addSvgIconLiteralInNamespace(namespace: string, name: string, literal: SafeHtml, options?: KbqIconOptions): void;
/** Registers an SVG sprite file in the default namespace. Icons are looked up by their `symbol id`. */
addSvgIconSet(url: SafeResourceUrl, options?: KbqIconOptions): void;
/** Registers an SVG sprite file under the given namespace. Duplicate URLs are silently ignored. */
addSvgIconSetInNamespace(namespace: string, url: SafeResourceUrl, options?: KbqIconOptions): void;
/**
* Emits a cloned SVGElement for the given name.
* Accepts "namespace:name" syntax.
*/
getNamedSvgIcon(name: string, namespace?: string): Observable;
private cacheIcon;
private loadIcon;
private registerIconSet;
private loadIconFromSets;
private loadIconSet;
private extractIconFromSet;
private svgElementFromText;
private fetchUrl;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵprov: i0.ɵɵInjectableDeclaration;
}