import { default as Supercluster, ClusterFeature, PointFeature } from 'supercluster'; import { Selection } from 'd3-selection'; import { NumericAccessor } from '../../types/accessor'; import { AreaLabelDatum, TopoJSONMapPieDatum, TopoJSONMapPointStyles, TopoJSONMapPointShape, TopoJSONMapPoint, TopoJSONMapPointDatum, TopoJSONMapClusterDatum } from './types'; import { TopoJSONMapConfigInterface } from './config'; export declare function getLonLat(d: Datum, pointLongitude: NumericAccessor, pointLatitude: NumericAccessor): [number, number]; export declare function arc(source?: number[], target?: number[], curvature?: number): string; export declare function getPointPathData({ x, y }: { x: number; y: number; }, radius: number, shape: TopoJSONMapPointShape): string; export declare function collideAreaLabels(selection: Selection, duration: number): void; export declare function collidePointBottomLabels(selection: Selection, SVGGElement, unknown>, duration: number): void; export declare function getDonutData(d: PointDatum, colorMap: TopoJSONMapPointStyles | undefined): TopoJSONMapPieDatum[]; export declare function toGeoJSONPoint(d: D, i: number, pointLatitude: NumericAccessor, pointLongitude: NumericAccessor): PointFeature; export declare function calculateClusterIndex(data: D[], config: TopoJSONMapConfigInterface, maxClusterZoomLevel?: number): Supercluster; export declare function getPointRadius(geoPoint: ClusterFeature> | PointFeature>, pointRadius: NumericAccessor, zoomLevel: number): number; export declare function geoJsonPointToScreenPoint(geoPoint: ClusterFeature> | PointFeature>, i: number, projection: (coordinates: [number, number]) => [number, number], config: TopoJSONMapConfigInterface, zoomLevel: number): TopoJSONMapPoint; export declare function getClustersAndPoints(clusterIndex: Supercluster, bounds: [number, number, number, number], zoom: number): (ClusterFeature> | PointFeature)[]; export declare const getNextZoomLevelOnClusterClick: (level: number, maxZoom?: number) => number; export declare function shouldClusterExpand(cluster: TopoJSONMapPoint, zoomLevel: number, midLevel?: number, maxLevel?: number, maxClusterZoomLevel?: number): boolean; export interface PackedPoint { dx: number; dy: number; packedRadius: number; } export declare function getClusterRadius(expandedCluster: { points: PackedPoint[]; cluster: TopoJSONMapPoint; }): number;