import { SVGParserResultNamedItem } from 'zrender/lib/tool/parseSVG.js'; 
 | 
import Group from 'zrender/lib/graphic/Group.js'; 
 | 
import { HashMap } from 'zrender/lib/core/util.js'; 
 | 
import BoundingRect from 'zrender/lib/core/BoundingRect.js'; 
 | 
import { GeoResource, GeoSVGSourceInput } from './geoTypes.js'; 
 | 
import { GeoSVGRegion } from './Region.js'; 
 | 
export interface GeoSVGGraphicRecord { 
 | 
    root: Group; 
 | 
    boundingRect: BoundingRect; 
 | 
    named: SVGParserResultNamedItem[]; 
 | 
} 
 | 
export declare class GeoSVGResource implements GeoResource { 
 | 
    readonly type = "geoSVG"; 
 | 
    private _mapName; 
 | 
    private _parsedXML; 
 | 
    private _firstGraphic; 
 | 
    private _boundingRect; 
 | 
    private _regions; 
 | 
    private _regionsMap; 
 | 
    private _usedGraphicMap; 
 | 
    private _freedGraphics; 
 | 
    constructor(mapName: string, svg: GeoSVGSourceInput); 
 | 
    load(): { 
 | 
        boundingRect: BoundingRect; 
 | 
        regions: GeoSVGRegion[]; 
 | 
        regionsMap: HashMap<GeoSVGRegion, string | number>; 
 | 
    }; 
 | 
    private _buildGraphic; 
 | 
    /** 
 | 
     * Consider: 
 | 
     * (1) One graphic element can not be shared by different `geoView` running simultaneously. 
 | 
     *     Notice, also need to consider multiple echarts instances share a `mapRecord`. 
 | 
     * (2) Converting SVG to graphic elements is time consuming. 
 | 
     * (3) In the current architecture, `load` should be called frequently to get boundingRect, 
 | 
     *     and it is called without view info. 
 | 
     * So we maintain graphic elements in this module, and enables `view` to use/return these 
 | 
     * graphics from/to the pool with it's uid. 
 | 
     */ 
 | 
    useGraphic(hostKey: string): GeoSVGGraphicRecord; 
 | 
    freeGraphic(hostKey: string): void; 
 | 
} 
 |