export type ExoGeoType = (typeof exoGeoTypes)[number]; export declare const isGeoType: (type: any) => type is ExoGeoType; declare const exoGeoTypes: readonly ["GeoJSON.Point", "GeoJSON.LineString", "GeoJSON.Polygon", "GeoJSON.MultiPoint", "GeoJSON.MultiLineString", "GeoJSON.MultiPolygon", "GeoJSON.GeometryCollection"]; export declare class ExoGeoClass { $geo: boolean; type: ExoGeoType; constructor(type: ExoGeoType); } export declare namespace ExoGeo { const Point: ExoGeoClass; const LineString: ExoGeoClass; const Polygon: ExoGeoClass; const MultiPoint: ExoGeoClass; const MultiLineString: ExoGeoClass; const MultiPolygon: ExoGeoClass; const GeometryCollection: ExoGeoClass; } export declare namespace GeoJSON { type Coord = number[]; interface Point { type: 'Point'; coordinates: Coord; } interface LineString { type: 'LineString'; coordinates: Coord[]; } interface Polygon { type: 'Polygon'; coordinates: Coord[][]; } interface MultiPoint { type: 'MultiPoint'; coordinates: Coord[]; } interface MultiLineString { type: 'MultiLineString'; coordinates: Coord[][]; } interface MultiPolygon { type: 'MultiPolygon'; coordinates: Coord[][][]; } interface GeometryCollection { type: 'GeometryCollection'; geometries: (Point | LineString | Polygon | MultiPoint | MultiLineString | MultiPolygon)[]; } type Json = Point | LineString | Polygon | MultiPoint | MultiLineString | MultiPolygon | GeometryCollection; } export declare const isGeoJSON: (type: ExoGeoType, val: GeoJSON.Json) => boolean; export {};