import React from 'react'; import MapboxGLMap from 'react-map-gl'; import { Layer } from '@deck.gl/core'; import * as VisStateActions from 'actions/vis-state-actions'; import * as MapStateActions from 'actions/map-state-actions'; import * as UIStateActions from 'actions/ui-state-actions'; import MapPopoverFactory from 'components/map/map-popover'; import MapControlFactory from 'components/map/map-control'; import EditorFactory from './editor/editor'; import { Datasets, Filter, InteractionConfig, MapControls, MapState, MapStyle, Viewport } from 'reducers'; import { SplitMapLayers } from 'reducers/vis-state-updaters'; type MapboxStyle = string | object | undefined; interface MapContainerProps { datasets: Datasets; interactionConfig: InteractionConfig; layerBlending: string; layerOrder: number[]; layerData: any[]; layers: Layer[]; filters: Filter[]; mapState: MapState; mapControls: MapControls; mapStyle: { bottomMapStyle?: MapboxStyle; topMapStyle?: MapboxStyle; } & MapStyle; mousePos: any; mapboxApiAccessToken: string; mapboxApiUrl: string; visStateActions: typeof VisStateActions; mapStateActions: typeof MapStateActions; uiStateActions: typeof UIStateActions; primary?: boolean; readOnly?: boolean; isExport?: boolean; clicked?: any; hoverInfo?: any; mapLayers?: SplitMapLayers | null; onMapToggleLayer?: Function; onMapStyleLoaded?: Function; onMapRender?: Function; getMapboxRef?: (mapbox?: typeof MapboxGLMap | null, index?: number) => void; index?: number; locale?: any; editor?: any; MapComponent?: typeof MapboxGLMap; deckGlProps?: any; onDeckInitialized?: (a: any, b: any) => void; onViewStateChange?: (viewport: Viewport) => void; generateThumbnail?: Function; popupSettings?: any; maskPolygon?: any; } declare function MapContainerFactory(MapPopover: any, MapControl: any, Editor: any): React.ComponentType; declare namespace MapContainerFactory { var deps: (typeof MapPopoverFactory | typeof MapControlFactory | typeof EditorFactory)[]; } export default MapContainerFactory;