import { Feature, Geometry, Point } from 'geojson'; import { default as Supercluster } from 'supercluster'; import { GeoProjection, geoMercator, geoEquirectangular, geoAzimuthalEqualArea, geoAzimuthalEquidistant, geoGnomonic, geoOrthographic, geoStereographic, geoEqualEarth, geoAlbersUsa, geoAlbers, geoConicConformal, geoConicEqualArea, geoConicEquidistant, geoTransverseMercator, geoNaturalEarth1 } from 'd3-geo'; import { Selection } from 'd3-selection'; export type MapData = { areas?: AreaDatum[]; points?: PointDatum[]; links?: LinkDatum[]; }; export declare enum MapPointLabelPosition { Center = "center", Bottom = "bottom" } export declare enum TopoJSONMapPointShape { Square = "square", Circle = "circle", Triangle = "triangle", Ring = "ring" } export type MapFeature = Feature & { data: D; }; export interface FlowParticle { velocity: number; x: number; y: number; radius?: number; color?: string; flowData: any; progress: number; id: string; arcPath?: string; pathLength?: number; } export type FlowUpdateContext = { _flowParticles: FlowParticle[]; _currentZoomLevel: number | undefined; _flowParticlesGroup: Selection; }; export type TopoJSONMapPieDatum = { value: number; name: string; color: string; className?: string; }; export type AreaLabelDatum = { centroid: [number, number]; labelText?: string; area: number; }; export interface TopoJSONMapPointStyle { color: string; className?: string; } export type TopoJSONMapPointStyles = { [key in keyof D]?: TopoJSONMapPointStyle; }; export type TopoJSONMapPointDatum = D & { id: string | number; shape: TopoJSONMapPointShape; _index: number; }; export type TopoJSONMapClusterDatum = Partial & { cluster?: boolean; clusterId?: number; pointCount?: number; pointCountAbbreviated?: string; clusterPoints?: D[]; clusterIndex?: Supercluster; }; export type TopoJSONMapPoint = { geometry: GeoJSON.Point; bbox: { x1: number; x2: number; y1: number; y2: number; }; radius: number; path: string; color: string; id: number | string; properties: TopoJSONMapPointDatum | TopoJSONMapClusterDatum; donutData: TopoJSONMapPieDatum[]; isCluster: boolean; clusterIndex?: Supercluster; _zIndex: number; }; export type ExpandedClusterPoint = TopoJSONMapPoint & { expandedClusterPoint?: TopoJSONMapPoint; clusterColor?: string; dx?: number; dy?: number; packedRadius?: number; }; export type CollapsedClusterFeature = Feature>; export type PointOrClusterProperties = PointDatum | TopoJSONMapClusterDatum; export declare enum MapProjectionKind { Mercator = "Mercator", Equirectangular = "Equirectangular", AzimuthalEqualArea = "AzimuthalEqualArea", AzimuthalEquidistant = "AzimuthalEquidistant", Gnomonic = "Gnomonic", Orthographic = "Orthographic", Stereographic = "Stereographic", EqualEarth = "EqualEarth", AlbersUsa = "AlbersUsa", Albers = "Albers", ConicConformal = "ConicConformal", ConicEqualArea = "ConicEqualArea", ConicEquidistant = "ConicEquidistant", TransverseMercator = "TransverseMercator", NaturalEarth1 = "NaturalEarth1", Bromley = "Bromley", NaturalEarth2 = "NaturalEarth2", Kavrayskiy7 = "Kavrayskiy7", Hufnagel = "Hufnagel", FoucautSinusoidal = "FoucautSinusoidal", Eckert1 = "Eckert1", Eckert3 = "Eckert3", Boggs = "Boggs", CylindricalStereographic = "CylindricalStereographic", Craster = "Craster", Baker = "Baker", Armadillo = "Armadillo", Aitoff = "Aitoff", Fahey = "Fahey", Robinson = "Robinson" } export declare const MapProjection: { Mercator: typeof geoMercator; Equirectangular: typeof geoEquirectangular; AzimuthalEqualArea: typeof geoAzimuthalEqualArea; AzimuthalEquidistant: typeof geoAzimuthalEquidistant; Gnomonic: typeof geoGnomonic; Orthographic: typeof geoOrthographic; Stereographic: typeof geoStereographic; EqualEarth: typeof geoEqualEarth; AlbersUsa: typeof geoAlbersUsa; Albers: typeof geoAlbers; ConicConformal: typeof geoConicConformal; ConicEqualArea: typeof geoConicEqualArea; ConicEquidistant: typeof geoConicEquidistant; TransverseMercator: typeof geoTransverseMercator; NaturalEarth1: typeof geoNaturalEarth1; Bromley: () => GeoProjection; NaturalEarth2: () => GeoProjection; Kavrayskiy7: () => GeoProjection; Hufnagel: () => GeoProjection; FoucautSinusoidal: () => GeoProjection; Eckert1: () => GeoProjection; Eckert3: () => GeoProjection; Boggs: () => GeoProjection; CylindricalStereographic: () => GeoProjection; Craster: () => GeoProjection; Baker: () => GeoProjection; Armadillo: () => GeoProjection; Aitoff: () => GeoProjection; Fahey: () => GeoProjection; Robinson: () => GeoProjection; };