import { type AgMapMarkerSeriesStyle, _ModuleSupport } from 'ag-charts-community';
import { type ChartAnimationPhase, type PlacedLabel, type Point } from 'ag-charts-core';
import { type AgMapMarkerSeriesOptions } from 'ag-charts-types';
import { LonLatBBox } from '../map-util/lonLatBbox';
import { TopologySeries } from '../map-util/topologySeries';
import type { ITopology } from '../map-util/topologyTypes';
import { type MapMarkerNodeDatum, type MapMarkerNodeLabelDatum, MapMarkerSeriesProperties } from './mapMarkerSeriesProperties';
interface MapMarkerNodeDataContext extends _ModuleSupport.DataModelSeriesNodeDataContext<MapMarkerNodeDatum, MapMarkerNodeLabelDatum> {
}
export declare class MapMarkerSeries extends TopologySeries<MapMarkerNodeDatum, AgMapMarkerSeriesOptions, MapMarkerSeriesProperties, MapMarkerNodeLabelDatum, MapMarkerNodeDataContext> implements ITopology {
    static readonly className = "MapMarkerSeries";
    static readonly type: "map-marker";
    scale: _ModuleSupport.MercatorScale | undefined;
    topologyBounds: LonLatBBox | undefined;
    properties: MapMarkerSeriesProperties;
    private _chartTopology?;
    getNodeData(): MapMarkerNodeDatum[] | undefined;
    private get topology();
    get hasData(): boolean;
    private readonly colorScale;
    private readonly sizeScale;
    private readonly markerGroup;
    private labelSelection;
    private highlightLabelSelection;
    private markerSelection;
    private highlightMarkerSelection;
    private placedLabelData;
    private contextNodeData?;
    private readonly animationState;
    constructor(moduleCtx: _ModuleSupport.ModuleContext);
    renderToOffscreenCanvas(): boolean;
    setChartTopology(topology: any): void;
    setZIndex(zIndex: number): boolean;
    private isLabelEnabled;
    processData(dataController: _ModuleSupport.DataController): Promise<void>;
    private isColorScaleValid;
    private getLabelDatum;
    private resolveColumn;
    private resolveDataColumns;
    private prepareProjectedGeometries;
    private calculateMarkerSize;
    private buildNodeDatum;
    private createNodeFromLatLon;
    private createNodesFromGeometry;
    private warnMissingGeometries;
    private buildFeatureMap;
    createNodeData(): {
        itemId: string;
        nodeData: MapMarkerNodeDatum[];
        labelData: MapMarkerNodeLabelDatum[];
    } | undefined;
    updateSelections(): void;
    private previousScale;
    private checkScaleChange;
    update({ seriesRect }: {
        seriesRect?: _ModuleSupport.BBox;
    }): void;
    updatePlacedLabelData(labelData: PlacedLabel<MapMarkerNodeLabelDatum>[]): void;
    private updateLabelNodes;
    private getHighlightedLabelId;
    private updateHighlightLabelSelection;
    private updateMarkerSelection;
    protected getMarkerItemStyle({ datumIndex, datum, colorValue, sizeValue }: Partial<MapMarkerNodeDatum>, isHighlight: boolean): Required<AgMapMarkerSeriesStyle>;
    private makeItemStylerParams;
    private updateMarkerNodes;
    isProcessedDataAnimatable(): boolean;
    resetAnimation(phase: ChartAnimationPhase): void;
    private resetAllAnimation;
    private animateMarkers;
    getLabelData(): MapMarkerNodeLabelDatum[];
    pickNodeClosestDatum(p: Point): _ModuleSupport.SeriesNodePickMatch | undefined;
    private legendItemSymbol;
    getLegendData(legendType: _ModuleSupport.ChartLegendType): _ModuleSupport.CategoryLegendDatum[] | _ModuleSupport.GradientLegendDatum[];
    getTooltipContent(datumIndex: number): _ModuleSupport.TooltipContent | undefined;
    getFormattedMarkerStyle(markerDatum: MapMarkerNodeDatum): {
        size: number;
        shape: import("ag-charts-community").AgMarkerShape;
    };
    protected computeFocusBounds(opts: _ModuleSupport.PickFocusInputs): _ModuleSupport.BBox | undefined;
    protected hasItemStylers(): boolean;
}
export {};
