import { InjectionToken, Optional } from '@angular/core';
import { Observable } from 'rxjs';
import * as i0 from "@angular/core";
export declare const SERVER_URL: InjectionToken<string>;
export declare class SvgIconRegistryService {
    private loader;
    protected serverUrl: string | null | undefined;
    private document;
    private iconsByUrl;
    private iconsLoadingByUrl;
    /** Add a SVG to the registry by passing a name and the SVG. */
    addSvg(name: string, data: string): void;
    /** Load a SVG to the registry from a URL. */
    loadSvg(url: string, name?: string): Observable<SVGElement | undefined> | undefined;
    /** Get loaded SVG from registry by name. (also works by url because of blended map) */
    getSvgByName(name: string): Observable<SVGElement | undefined> | undefined;
    /** Remove a SVG from the registry by URL (or name). */
    unloadSvg(url: string): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SvgIconRegistryService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<SvgIconRegistryService>;
}
export declare function SVG_ICON_REGISTRY_PROVIDER_FACTORY(parentRegistry: SvgIconRegistryService): SvgIconRegistryService;
export declare const SVG_ICON_REGISTRY_PROVIDER: {
    provide: typeof SvgIconRegistryService;
    deps: Optional[][];
    useFactory: typeof SVG_ICON_REGISTRY_PROVIDER_FACTORY;
};
