interface Properties { fillStyle?: string | CanvasGradient | CanvasPattern; strokeStyle?: string | CanvasGradient | CanvasPattern; globalAlpha?: number; lineWidth?: number; } interface GeoBase { type: 'Point' | 'MultiPoint' | 'LineString' | 'MultiLineString' | 'Polygon' | 'MultiPolygon' | 'GeometryCollection' | 'Feature' | 'FeatureCollection'; properties?: { [key: string]: any; } & Properties; } export type Coordinates = number[]; export interface Point extends GeoBase { type: 'Point'; coordinates: Coordinates; } export interface MultiPoint extends GeoBase { type: 'MultiPoint'; coordinates: Coordinates[]; } export interface LineString extends GeoBase { type: 'LineString'; coordinates: Coordinates[]; } export interface MultiLineString extends GeoBase { type: 'MultiLineString'; coordinates: Coordinates[][]; } export interface Polygon extends GeoBase { type: 'Polygon'; coordinates: Coordinates[][]; } export interface MultiPolygon extends GeoBase { type: 'MultiPolygon'; coordinates: Coordinates[][][]; } export type Geometry = Point | MultiPoint | LineString | MultiLineString | Polygon | MultiPolygon; export interface GeometryCollection extends GeoBase { type: 'GeometryCollection'; geometries: Geometry[]; } export interface Feature extends GeoBase { type: 'Feature'; geometry: Geometry; } export interface FeatureCollection extends GeoBase { type: 'FeatureCollection'; features: Feature[]; } export interface GeoJSONProps extends React.DetailedHTMLProps, HTMLCanvasElement> { data?: Point | MultiPoint | LineString | MultiLineString | Polygon | MultiPolygon | GeometryCollection | Feature | FeatureCollection; fillStyle?: string | CanvasGradient | CanvasPattern; strokeStyle?: string | CanvasGradient | CanvasPattern; globalAlpha?: number; lineWidth?: number; } export {};