import { GeoJsonBbox, GeoJsonMultiPolygon, GeoJsonPoint, GeoJsonPolygon, GeoJsonPosition, GeoJsonPosition2d } from "./GeoJsonSchemas"; /** * @description Converts a GeoJSON position (which may have altitude) to a 2D position. */ export declare const toPosition2d: (position: GeoJsonPosition) => GeoJsonPosition2d; export interface TuCoordinate { longitude: number; latitude: number; } export interface TuBoundingBox { nw: TuCoordinate; se: TuCoordinate; } /** * @description Creates a TU bounding box from a GeoJson Polygon. * Handles cases where the polygon crosses the 180/-180 meridian. */ export declare const getBoundingBoxFromGeoJsonPolygon: (polygon: GeoJsonPolygon | GeoJsonMultiPolygon) => TuBoundingBox | null; /** * @description Creates a GeoJSON Polygon or MultiPolygon from a TU bounding box. * Returns a MultiPolygon when the bounding box crosses the 180/-180 meridian, * with one polygon per hemisphere. * * Returns a 2D-only coordinate type since bounding boxes have no altitude. * The return type is assignable to both GeoJsonPolygon | GeoJsonMultiPolygon * (for GeoJSON consumers) and GraphQL AreaInput (for query variables). */ export declare const getGeoJsonPolygonFromBoundingBox: (boundingBox: TuBoundingBox) => { type: "MultiPolygon"; coordinates: Array>>; } | { type: "Polygon"; coordinates: Array>; }; /** * @description Creates TU point coordinate from a GeoJSON Point. */ export declare const getPointCoordinateFromGeoJsonPoint: (point: GeoJsonPoint) => TuCoordinate; /** * @description Creates a TU bounding box from a GeoJSON Bbox. */ export declare const getBoundingBoxFromGeoJsonBbox: (bbox: GeoJsonBbox) => TuBoundingBox;