import { TypeCountry } from "../config/countries";
import { TypeLanguagesSupported } from "../../../config/types";
import { TypeCountryKey, TypeDataSource } from "../types/types";
import { TypeSvgContent } from "./GeoJson2Path";
interface WorldMapSvgOptions {
    country?: string | null;
    width?: number;
    height?: number;
    dataSource?: TypeDataSource;
    zoomCountry?: boolean;
    language?: TypeLanguagesSupported;
}
/**
 * Class WorldMapSvg.
 *
 * @author Björn Hempel <bjoern@hempel.li>
 * @version 0.1.0 (2024-07-14)
 * @since 0.1.0 (2024-07-14) First version.
 */
export declare class WorldMapSvg {
    private country;
    private countryKey;
    private readonly width;
    private readonly height;
    private readonly zoomCountry;
    private readonly language;
    private dataSource;
    private data;
    private dataIdMap;
    private dataConverter;
    private boundingBox;
    private geoJson2Path;
    private readonly propertyCountryDefault;
    private readonly propertyWidthDefault;
    private readonly propertyHeightDefault;
    private readonly propertyDataSourceDefault;
    private readonly propertyZoomCountryDefault;
    private readonly propertyLanguageDefault;
    private readonly zoomGapBoundingBoxLongitudeFactor;
    private readonly zoomGapBoundingBoxLatitudeFactor;
    private readonly zoomGapBoundingBoxLongitudeFactorAll;
    private readonly zoomGapBoundingBoxLatitudeFactorAll;
    /**
     * The constructor of WorldMapSvg.
     *
     * @param options
     */
    constructor(options?: WorldMapSvgOptions);
    /**
     * Sets the country.
     *
     * @param country
     */
    setCountry(country: TypeCountryKey): void;
    /**
     * Sets the data source.
     *
     * @param dataSource
     */
    setDataSource(dataSource: TypeDataSource): void;
    /**
     * Transform the given GeoJSON data into a feature key object.
     *
     * @param geoJson
     */
    private transformGeoJsonToFeatureMap;
    /**
     * Returns the country key from given country code.
     *
     * @param country
     * @private
     */
    private getCountryKey;
    /**
     * Sets the country key to null if there is no country as given.
     *
     * @private
     */
    private fixCountryKeyToAvailableData;
    /**
     * Generates the svg string by given country.
     *
     * @param country
     */
    generateSvgByCountry(country: string | null): TypeSvgContent;
    /**
     * Returns the translation from countryMap.
     *
     * @see countryMap
     */
    getTranslation(): TypeCountry | null;
}
export {};
