/** * @typedef {[number, number, number, number]} Bbox * [minx, miny, maxx, maxy] in WGS84. */ /** * Reads bbox metadata directly from GeoParquet files using DuckDB. * Handles file-level bbox fallback and row-group bbox extraction. */ export class ParquetBboxReader { /** @type {Map} */ _bboxCache: Map; /** @type {Map | null>} */ _rowGroupCache: Map | null>; /** * @param {{ id: string, url: string }[]} files * @param {import('./duckdb_adapter.js').DuckDBClient} duckdb * @returns {Promise | null>} */ getFileBboxes(files: { id: string; url: string; }[], duckdb: import("./duckdb_adapter.js").DuckDBClient): Promise | null>; /** * @param {{ id: string, url: string }[]} files * @param {import('./duckdb_adapter.js').DuckDBClient} duckdb * @param {{ bboxColumn?: string, signal?: AbortSignal, onStatus?: (msg: string) => void }} [options] * @returns {Promise> | null>} */ getRowGroupBboxes(files: { id: string; url: string; }[], duckdb: import("./duckdb_adapter.js").DuckDBClient, options?: { bboxColumn?: string; signal?: AbortSignal; onStatus?: (msg: string) => void; }): Promise> | null>; _getGeoMetadata(safeUrl: any, duckdb: any): Promise; _getCoveringBboxPaths(safeUrl: any, duckdb: any, bboxColumn: any): Promise<{ xminPath: any; yminPath: any; xmaxPath: any; ymaxPath: any; }>; _parseKvBlob(raw: any): any; _isValidWgs84Bbox(minx: any, miny: any, maxx: any, maxy: any): boolean; } /** * [minx, miny, maxx, maxy] in WGS84. */ export type Bbox = [number, number, number, number];