import { TypeBoundingBox, TypeBoundingBoxType, TypeCountryKey, TypeFeatureMap, TypeCropBoundingBox } from "../types/types";
interface BoundingBoxOptions {
}
/**
 * Class BoundingBox.
 *
 * @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 BoundingBox {
    private readonly geometryChecker;
    private readonly coordinateConverter;
    private width;
    private height;
    /**
     * The constructor of WorldMapSvg.
     *
     * @param options
     */
    constructor(options?: BoundingBoxOptions);
    setWidth(width: number): void;
    setHeight(height: number): void;
    /**
     * Calculates the bounding box from the given feature map.
     *
     * @param featureMap
     */
    private calculateBoundingBoxAll;
    /**
     * Calculates the bounding box from the given feature.
     *
     * @param feature
     * @param cropBoundingBox
     */
    private calculateBoundingBoxCountry;
    /**
     * Calculates the bounding box for the EU with proj3857 projection.
     */
    private calculateBoundingBoxEu;
    /**
     * Returns an empty bounding box.
     */
    private calculateBoundingBoxEmpty;
    /**
     * Calculates the bounding box from given data and bounding box type.
     */
    calculateBoundingBox(dataIdMap: TypeFeatureMap, boundingType: TypeBoundingBoxType, countryKey: TypeCountryKey, cropBoundingBox?: TypeCropBoundingBox | null): TypeBoundingBox;
    /**
     * Fixes given latitude and longitude values to dimensions.
     *
     * @param boundingBox
     * @param wantedWidth
     * @param wantedHeight
     */
    private adjustBoundingBox;
    /**
     * Calculates the bounding box from the given point.
     *
     * @param point
     */
    private calculateBoundingBoxFromPoint;
    /**
     * Calculate the bounding box from the given line.
     *
     * @param line
     */
    private calculateBoundingBoxLineString;
    /**
     * Calculates the bounding box from the given polygon.
     *
     * @param polygon
     */
    private calculateBoundingBoxFromPolygon;
    /**
     * Calculates the bounding box from the given multipolygon.
     *
     * @param multipolygon
     * @param cropBoundingBox
     */
    private calculateBoundingBoxFromMultiPolygon;
    /**
     * Calculates the centered and filled with gap bounding box.
     *
     * @param boundingBox
     * @param width
     * @param height
     * @param factorGapLongitude
     * @param factorGapLatitude
     */
    centerBoundingBox(boundingBox: TypeBoundingBox, width: number, height: number, factorGapLongitude: number, factorGapLatitude: number): TypeBoundingBox;
    /**
     * Returns the point size of given bounding box and type.
     *
     * @param boundingBox
     * @param boundingType
     * @private
     */
    getPointSizeByBoundingBox(boundingBox: TypeBoundingBox, boundingType: TypeBoundingBoxType): number;
    /**
     * Returns the type of bounding box.
     *
     * @param countryGiven
     * @param countryKey
     * @param zoomCountry
     * @private
     */
    getBoundingType(countryGiven: string | null, countryKey: string | null, zoomCountry: boolean): TypeBoundingBoxType;
}
export {};
