/// /// import * as React from 'react'; import * as PropTypes from 'prop-types'; import { Map, Point } from 'mapbox-gl'; import { OverlayParams } from './util/overlays'; import * as GeoJSON from 'geojson'; import { Anchor } from './util/types'; export interface Props { type: 'marker' | 'popup'; coordinates: GeoJSON.Position; anchor?: Anchor; offset?: number | number[] | Point; children?: JSX.Element | JSX.Element[]; onClick?: React.MouseEventHandler; onDoubleClick?: React.MouseEventHandler; onMouseEnter?: React.MouseEventHandler; onMouseLeave?: React.MouseEventHandler; onScroll?: React.UIEventHandler; onWheel?: React.MouseEventHandler; style?: React.CSSProperties; className: string; } export interface Context { map: Map; } export default class ProjectedLayer extends React.Component { context: Context; private container; private prevent; static contextTypes: { map: PropTypes.Requireable; }; static defaultProps: { offset: number; onClick: (...args: any[]) => any[]; }; state: OverlayParams; private setContainer; private handleMapMove; componentDidMount(): void; private havePropsChanged(props, nextProps); componentWillReceiveProps(nextProps: Props): void; componentWillUnmount(): void; render(): JSX.Element; }