import type { GeoJsonBbox, GeoJsonFeatureCollection, GeoJsonGeometry, GeoJsonMultiPolygon, GeoJsonPolygon, GeoJsonPosition } from "./GeoJsonSchemas"; type Edge = readonly [GeoJsonPosition, GeoJsonPosition]; /** * Ray-casting point-in-polygon test for a single coordinate ring. * Returns true if the point is inside the ring (crossing-number algorithm). * * This is an unvalidated, performance-optimized version of * `isGeoJsonPositionInLinearRing` for use in hot rendering paths. */ export declare const isPositionInsideRing: (point: GeoJsonPosition, ring: ReadonlyArray) => boolean; /** * Hole-aware point-in-polygon: true when the point is inside the exterior ring * and outside every hole ring (RFC 7946 Section 3.1.6). * * This is an unvalidated, performance-optimized version of * `isGeoJsonPointInPolygon` for use in hot rendering paths. */ export declare const isPointInPolygon: (point: GeoJsonPosition, polygon: GeoJsonPolygon) => boolean; /** * Whether every outer-ring vertex of `geom1` lies inside `geom2` (holes respected; * for a MultiPolygon `geom2`, "inside" means inside any one member). A degenerate * `geom1` with no outer rings is contained in nothing. * * This is an unvalidated, performance-optimized version of * `isFullyContainedInGeoJsonGeometry` for use in hot rendering paths. */ export declare const isFullyContainedInGeometry: (geom1: GeoJsonPolygon | GeoJsonMultiPolygon, geom2: GeoJsonPolygon | GeoJsonMultiPolygon) => boolean; /** * Check if a bounding box is fully inside any polygon in a feature collection. * All four corners of the bbox must be inside the same polygon and outside * all interior rings (holes). * * Handles Polygon, MultiPolygon, and recursive GeometryCollection. * Returns false for non-polygon geometries (Point, LineString, etc.) * since they have no interior area. */ export declare const isBboxInsideFeatureCollection: (bbox: Readonly, features: GeoJsonFeatureCollection) => boolean; /** * Extract edges from all polygon-like and line-like geometries in a feature collection. * Handles Polygon, MultiPolygon, LineString, MultiLineString, and recursive GeometryCollection types. * * For Polygon and MultiPolygon, only outer ring edges are collected — interior rings (holes) are * intentionally skipped since these edges are used for outline label placement. */ export declare const extractEdges: (features: GeoJsonFeatureCollection) => ReadonlyArray; /** * Compute the centroid (average coordinate) of all geometries in a feature collection. */ export declare const computeGeometryCentroid: (features: GeoJsonFeatureCollection) => GeoJsonPosition | null; /** * Extract the first point coordinate from a feature collection containing * Point or MultiPoint geometries. Returns null if no point geometries exist. */ export declare const extractFirstPointCoordinate: (features: GeoJsonFeatureCollection) => GeoJsonPosition | null; /** * Extract all coordinates from a single GeoJSON geometry. * Handles Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon, * and GeometryCollection (recursively). */ export declare const extractPositionsFromGeometry: (geometry: GeoJsonGeometry) => ReadonlyArray; /** * Wrap a GeoJSON geometry in a single-feature FeatureCollection. * * Bridges geometry-producing functions (e.g. `getPolygonFromPointAndRadius`) * with consumers that expect a FeatureCollection (e.g. `useShapes`). */ export declare const toFeatureCollection: (geometry: GeoJsonGeometry, options?: Readonly<{ id?: string; properties?: Readonly>; }>) => GeoJsonFeatureCollection; export {};