import * as ga from "@geoarrow/geoarrow-js"; import * as arrow from "apache-arrow"; import type { TypedArray } from "../types"; export declare function findGeometryColumnIndex(schema: arrow.Schema, extensionName: string, geometryColumnName?: string | null): number | null; /** * Returns `true` if the input is a reference to a column in the table */ export declare function isColumnReference(input: any): input is string; /** * Check if the coordinates in a geometry are interleaved * Returns true if the coordinates are interleaved, false if separated. * * The geometry can be point, line, polygon, etc. * The function recursively checks for the underlying * coordinate data type when it's of type List. * * If the coordinate type is neither a FixedSizeList nor a Struct, * throw an error. */ export declare function isGeomInterleaved(data: arrow.Data): boolean; /** * Check if the coordinates in a geometry are separate * Returns true if the coordinates are separate, false if they are interleaved. * * The geometry can be point, line, polygon, etc. * The function recursively checks for the underlying * coordinate data type when it's of type List. * * If the coordinate type is neither a FixedSizeList nor a Struct, * throw an error. */ export declare function isGeomSeparate(data: arrow.Data): boolean; /** * Convert geoarrow Struct coordinates to FixedSizeList coords * * The GeoArrow spec allows for either separated or interleaved coords, but at * this time deck.gl only supports interleaved. */ export declare function convertStructToFixedSizeList(coords: ga.data.PointData | arrow.Data> | arrow.Data>): arrow.Data>; /** * Get LineString Data with interleaved coordinates * from the given LineString Data with separated (struct) coordinates. */ export declare function getInterleavedLineString(lineStringData: ga.data.LineStringData): ga.data.LineStringData; /** * Get Polygon Data with interleaved coordinates * from the given Polygon Data with separated (struct) coordinates. */ export declare function getInterleavedPolygon(polygonData: ga.data.PolygonData): ga.data.PolygonData; type AssignAccessorProps = { /** The object on which to assign the resolved accesor */ props: Record; /** The name of the prop to set */ propName: string; /** The user-supplied input to the layer. Must either be a scalar value or a reference to a column in the table. */ propInput: any; /** a map from the geometry index to the coord offsets for that geometry. */ geomCoordOffsets?: Int32Array | null; }; /** * Resolve accessor and assign to props object * * This is useful as a helper function because a scalar prop is set at the top * level while a vectorized prop is set inside data.attributes * */ export declare function assignAccessor(args: AssignAccessorProps): void; /** * Expand an array from "one element per geometry" to "one element per coordinate" * * @param input: the input array to expand * @param size : the number of nested elements in the input array per geometry. So for example, for RGB data this would be 3, for RGBA this would be 4. For radius, this would be 1. * @param geomOffsets : an offsets array mapping from the geometry to the coordinate indexes. So in the case of a LineStringArray, this is retrieved directly from the GeoArrow storage. In the case of a PolygonArray, this comes from the resolved indexes that need to be given to the SolidPolygonLayer anyways. * * @return {TypedArray} values expanded to be per-coordinate */ export declare function expandArrayToCoords(input: T, size: number, geomOffsets: Int32Array): T; /** * Get a geometry vector with the specified extension type name from the table. */ export declare function getGeometryData(batch: arrow.RecordBatch, geoarrowTypeName: string): arrow.Data | null; export declare function getListNestingLevels(data: arrow.Data): number; export declare function getMultiLineStringResolvedOffsets(data: ga.data.MultiLineStringData): Int32Array; export declare function getPolygonResolvedOffsets(data: ga.data.PolygonData): Int32Array; export declare function getMultiPolygonResolvedOffsets(data: ga.data.MultiPolygonData): Int32Array; /** * Invert offsets so that lookup can go in the opposite direction */ export declare function invertOffsets(offsets: Int32Array): Uint8Array | Uint16Array | Uint32Array; export declare function extractAccessorsFromProps(props: Record, excludeKeys: string[]): [Record, Record]; export {}; //# sourceMappingURL=utils.d.ts.map