import { default as default_2 } from 'react'; import type * as THREE from 'three'; declare interface AmbientLightConfig extends BaseLightConfig { type: 'ambient'; } declare interface AxesClassNameObject { gridLines?: string; labels?: string; title?: string; axis?: string; } declare interface AxesStyleObject { gridLines?: React.CSSProperties; labels?: React.CSSProperties; title?: React.CSSProperties; axis?: React.CSSProperties; } declare interface BaseLightConfig { type: string; color: number; intensity: number; } declare interface ChoroplethMapDataType { x?: number | string | null; id: string; date?: string | number; data?: object; } declare interface ClassNameObject { title?: string; footnote?: string; source?: string; description?: string; tooltip?: string; xAxis?: AxesClassNameObject; yAxis?: AxesClassNameObject; legend?: string; graphContainer?: string; graphObjectValues?: string; dataConnectors?: string; mouseOverLine?: string; regLine?: string; dataCards?: string; colorLegend?: string; modal?: string; area?: string; } declare interface DirectionalLightConfig extends BaseLightConfig { type: 'directional'; target?: Position; castShadow?: boolean; shadow?: ShadowConfig; position?: Position | 'camera'; } declare interface FogDataType { color: string; near: number; far: number; } declare type Languages = 'en' | 'ar' | 'az' | 'bn' | 'cy' | 'he' | 'hi' | 'ja' | 'ka' | 'km' | 'ko' | 'my' | 'ne' | 'zh' | 'custom'; declare type LightConfig = AmbientLightConfig | DirectionalLightConfig | PointLightConfig | SpotLightConfig; declare interface NumberFormatOptions { locale?: string; precision?: number; prefix?: string; suffix?: string; padZeros?: PadZerosTypes; } declare type PadZerosTypes = 'all' | 'decimal' | 'none'; declare interface PointLightConfig extends BaseLightConfig { type: 'point'; distance?: number; decay?: number; position?: Position | 'camera'; } declare interface Position { x: number; y: number; z: number; } declare interface Props { /** Array of data objects */ data: ChoroplethMapDataType[]; /** Title of the graph */ graphTitle?: string | default_2.ReactNode; /** Description of the graph */ graphDescription?: string | default_2.ReactNode; /** Footnote for the graph */ footNote?: string | default_2.ReactNode; /** Source data for the graph */ sources?: SourcesDataType[]; /** Accessibility label */ ariaLabel?: string; /** Colors for the choropleth map. Make sure the the colors are in hex code, any other format can cause issues. */ colors?: string[]; /** Domain of colors for the graph */ colorDomain?: number[] | string[]; /** Title for the color legend */ colorLegendTitle?: string; /** Color for the areas where data is no available */ mapNoDataColor?: string; /** Background color of the graph */ backgroundColor?: string | boolean; /** Custom styles for the graph. Each object should be a valid React CSS style object. */ styles?: StyleObject; /** Custom class names */ classNames?: ClassNameObject; /** Width of the graph */ width?: number; /** Height of the graph */ height?: number; /** Minimum height of the graph */ minHeight?: number; /** Relative height scaling factor. This overwrites the height props */ relativeHeight?: number; /** Padding around the graph. Defaults to 0 if no backgroundColor is mentioned else defaults to 1rem */ padding?: string; /** Map data as an object in geoJson format or a url for geoJson */ mapData?: any; /** Stroke color of the regions in the map */ mapBorderColor?: string; /** Center point of the map */ centerPoint?: [number, number]; /** Defines if the globe rotates automatically */ autoRotate?: number | boolean; /** Defines the material property applied to the sphere of the globe */ globeMaterial?: THREE.Material; /** Defines the lights for the 3D scene */ lights?: LightConfig[]; /** Defines the colo of the glow around the globe */ atmosphereColor?: string; /** Defines if the globe can be zoomed when scrolled */ enableZoom?: boolean; /** Position offset of the globe relative to the canvas center */ globeOffset?: [number, number]; /** Defines the camera distance from Earth. This helps in defining the default size of the globe. Smaller = closer camera therefore the globe is bigger) */ scale?: number; /** Defines the spacing between the country shape polygon with the sphere */ polygonAltitude?: number; /** Scale for the colors */ scaleType?: Exclude; /** Toggle visibility of color scale. */ showColorScale?: boolean; /** Configuration options for controlling number formatting, localization, precision, and zero padding. */ numberDisplayOptions?: Omit; /** Toggle if color scale is collapsed by default. */ collapseColorScaleByDefault?: boolean; /** The max altitude of the atmosphere, in terms of globe radius units. */ atmosphereAltitude?: number; /** Resolution in angular degrees of the sphere curvature. The finer the resolution, the more the globe is fragmented into smaller faces to approximate the spheric surface, at the cost of performance. */ globeCurvatureResolution?: number; /** Defines fog settings for the scene. */ fogSettings?: FogDataType; /** Property in the property object in mapData geoJson object is used to match to the id in the data object */ mapProperty?: string; /** Countries or regions to be highlighted */ selectedId?: string; /** Countries or regions to be highlighted */ highlightedIds?: string[]; /** Defines the altitude of the highlighted countries or the countries on mouseover. */ highlightedAltitude?: number; /** Defines the opacity of the non-highlighted data */ dimmedOpacity?: number; /** Enable data download option as a csv */ dataDownload?: boolean; /** Reset selection on double-click. Only applicable when used in a dashboard context with filters. */ resetSelectionOnDoubleClick?: boolean; /** Tooltip content. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */ tooltip?: string | ((_d: any) => default_2.ReactNode); /** Details displayed on the modal when user clicks of a data point. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */ detailsOnClick?: string | ((_d: any) => default_2.ReactNode); /** Callback for mouse over event */ onSeriesMouseOver?: (_d: any) => void; /** Callback for mouse click event */ onSeriesMouseClick?: (_d: any) => void; /** Language setting */ language?: Languages; /** Color theme */ theme?: 'light' | 'dark'; /** Unique ID for the graph */ graphID?: string; } declare type ScaleDataType = 'categorical' | 'linear' | 'threshold'; declare interface ShadowConfig { mapSize: { width: number; height: number; }; camera: { near: number; far: number; }; } declare interface SourcesDataType { source: string; link?: string; } declare interface SpotLightConfig extends BaseLightConfig { type: 'spot'; target?: Position; distance?: number; angle?: number; penumbra?: number; decay?: number; castShadow?: boolean; shadow?: ShadowConfig; position?: Position | 'camera'; } declare interface StyleObject { title?: React.CSSProperties; footnote?: React.CSSProperties; source?: React.CSSProperties; description?: React.CSSProperties; graphContainer?: React.CSSProperties; tooltip?: React.CSSProperties; xAxis?: AxesStyleObject; yAxis?: AxesStyleObject; graphObjectValues?: React.CSSProperties; dataConnectors?: React.CSSProperties; mouseOverLine?: React.CSSProperties; regLine?: React.CSSProperties; dataCards?: React.CSSProperties; modal?: React.CSSProperties; area?: React.CSSProperties; } /** For using these maps you will have to install [`three`](https://threejs.org/manual/) and [react-globe.gl](https://www.npmjs.com/package/react-globe.gl) package to your project */ export declare function ThreeDGlobe(props: Props): default_2.JSX.Element; export { }