import { Selection } from 'd3-selection'; import { D3ZoomEvent, ZoomTransform } from 'd3-zoom'; import { ComponentCore } from '../../core/component'; import { MapGraphDataModel } from '../../data-models/map-graph'; import { GenericDataRecord } from '../../types/data'; import { MapData } from './types'; import { TopoJSONMapConfigInterface } from './config'; import * as s from './style'; export declare class TopoJSONMap extends ComponentCore, TopoJSONMapConfigInterface> { static selectors: typeof s; protected _defaultConfig: TopoJSONMapConfigInterface; config: TopoJSONMapConfigInterface; datamodel: MapGraphDataModel; g: Selection; private _firstRender; private _isResizing; private _initialScale; private _center; private _currentZoomLevel; private _transform; private _path; private _projection; private _prevWidth; private _prevHeight; private _animFrameId; private _isZooming; private _zoomEndTimeoutId; private _collisionDetectionAnimFrameId; private _clusterIndex; private _expandedCluster; private _collapsedCluster; private _collapsedClusterPointIds; private _prevZoomToLocation; private _eventInitiatedByComponent; private _featureCollection; private _zoomBehavior; private _backgroundRect; private _featuresGroup; private _areaLabelsGroup; private _linksGroup; private _clusterBackgroundGroup; private _flowParticlesGroup; private _pointsGroup; private _pointSelectionRing; private _sourcePointsGroup; private _selectedPoint; private _flowParticles; private _sourcePoints; private _animationId; events: { [x: string]: {}; }; constructor(config?: TopoJSONMapConfigInterface, data?: MapData); setData(data: MapData): void; setConfig(config?: TopoJSONMapConfigInterface): void; _render(customDuration?: number): void; _renderBackground(): void; _renderGroups(duration: number): void; _renderMap(duration: number): void; _renderAreaLabels(duration: number): void; _renderClusterBackground(duration: number): void; _renderLinks(duration: number): void; private _shouldFilterPointOrCluster; private _getPointData; _renderPoints(duration: number): void; _fitToPoints(points?: PointDatum[], pad?: number): void; _applyZoom(): void; _onResize(): void; _onZoom(event: D3ZoomEvent): void; _onZoomEnd(): void; private _runCollisionDetection; _onZoomHandler(transform: ZoomTransform, isMouseEvent: boolean, isExternalEvent: boolean, isResizeEvent?: boolean): void; zoomIn(increment?: number): void; zoomOut(increment?: number): void; setZoom(zoomLevel: number): void; fitView(): void; private _initFlowFeatures; private _renderSourcePoints; private _renderFlowParticles; private _startFlowAnimation; private _animateFlow; private _stopFlowAnimation; private _updateFlowParticles; private _onPointClick; private _findClusterAtCoordinates; private _expandCluster; private _zoomToLocation; private _collapseExpandedCluster; private _resetExpandedCluster; /** Select a point by id */ selectPointById(id: string): void; /** Get the id of the selected point */ getSelectedPointId(): string | number | undefined; /** Unselect point */ unselectPoint(): void; protected _onDestroy(): void; }