/** * GeoParquet (spec: issue #14). Decodes with hyparquet — a pure-JS, zero-dep * Parquet reader — plus hyparquet-compressors for snappy/gzip/zstd (its zstd * IS the same `fzstd` the Arrow path already bundles; no second codec ships). * hyparquet reads the GeoParquet `geo` file metadata and decodes the WKB * primary geometry column to GeoJSON geometry itself, so no WKB decoder is * ours to maintain. * * What IS ours: `geo` metadata validation, a CRS84 guard (deck.gl renders in * lng/lat — a projected file would land in the ocean, so a non-CRS84 CRS is a * loud structured error until the reprojection workstream lands, NOT a silent * skip the way GL does it), and the Arrow geometry rule from * `arrowTableToLayerData` — all-Point tables transpose to columnar (zero row * materialization on the render path), while lines/polygons/mixed become * GeoJSON feature rows that every geometry consumer speaks. */ import type { LayerData } from "./ir"; /** The parsed GeoParquet `geo` file-metadata value (a JSON string in key_value_metadata). */ export interface GeoParquetMetadata { primary_column?: string; columns?: Record; } /** * hyparquet rows (geometry already decoded to GeoJSON) → LayerData, applying * the CRS guard and the Arrow all-Point-columnar / lines-polys-feature-rows * split. `rows` is consumed after the geo-metadata gate in data-layer's * PARQUET_FORMAT. */ export declare function geoParquetToLayerData(rows: Record[], geo: GeoParquetMetadata, url: string): LayerData;