import type { Datum } from "../shared/datumTypes";
import type { StreamGeoFrameProps, ProjectionProp } from "../../stream/geoTypes";
import type { BaseChartProps, ChartAccessor } from "../shared/types";
import { type TooltipProp } from "../../Tooltip/Tooltip";
import type { LegendInteractionMode } from "../shared/hooks";
import { type AreasProp } from "../../geo/useReferenceAreas";
export interface ChoroplethMapProps<TDatum extends Datum = Datum> extends BaseChartProps {
    /** GeoJSON features or a reference string ("world-110m", "world-50m", "land-110m", "land-50m") */
    areas: AreasProp;
    /** Accessor for the numeric value to encode as color */
    valueAccessor: ChartAccessor<TDatum, number>;
    /** Sequential color scheme @default "blues" */
    colorScheme?: string;
    /** Geographic projection @default "equalEarth" */
    projection?: ProjectionProp;
    /** Show graticule grid lines */
    graticule?: boolean | import("../../stream/geoTypes").GraticuleConfig;
    /** Tooltip config */
    tooltip?: TooltipProp;
    /** Show legend @default true */
    showLegend?: boolean;
    /** Legend interaction mode */
    legendInteraction?: LegendInteractionMode;
    /** Padding fraction for auto-fit projection. 0.1 = 10% inset from edges. @default 0 */
    fitPadding?: number;
    /** Enable zoom/pan. Defaults to true when tileURL is set, false otherwise. */
    zoomable?: boolean;
    /** [minZoom, maxZoom] @default [1, 8] */
    zoomExtent?: [number, number];
    /** Zoom change callback */
    onZoom?: StreamGeoFrameProps["onZoom"];
    /**
     * When true, drag gestures rotate the projection (globe spinning)
     * instead of panning. Defaults to true for orthographic projection.
     */
    dragRotate?: boolean;
    /** Raster tile URL template or function. Enables tile basemap (Mercator only). */
    tileURL?: string | ((z: number, x: number, y: number, dpr: number) => string);
    /** Attribution text for tile provider */
    tileAttribution?: string;
    /** Max cached tiles @default 256 */
    tileCacheSize?: number;
    /** Fill opacity for area polygons. Useful for layering over tile basemaps. @default 1 */
    areaOpacity?: number;
    /** Annotations */
    annotations?: Datum[];
    /** Passthrough to StreamGeoFrame */
    frameProps?: Partial<Omit<StreamGeoFrameProps, "areas" | "projection">>;
}
export declare function ChoroplethMap<TDatum extends Datum = Datum>(props: ChoroplethMapProps<TDatum>): import("react/jsx-runtime").JSX.Element;
export declare namespace ChoroplethMap {
    var displayName: string;
}
