import { type LngLatBoundsLike } from 'maplibre-gl'; import { type RequestResourceType, type RequestTransform } from './request'; export type EsriSpatialReference = { wkid?: number; latestWkid?: number; }; export type EsriExtent = { xmin: number; ymin: number; xmax: number; ymax: number; spatialReference?: EsriSpatialReference; }; export type EsriLevelOfDetail = { level: number; resolution: number; scale?: number; }; export type EsriTileInfo = { rows?: number; cols?: number; origin?: { x: number; y: number; }; spatialReference?: EsriSpatialReference; lods?: EsriLevelOfDetail[]; }; export declare const ESRI_VECTOR_LAYER = "esri"; export type EsriField = { name: string; type?: string; alias?: string; }; export type EsriMetadata = { name?: string; capabilities?: string; extent?: EsriExtent; fullExtent?: EsriExtent; spatialReference?: EsriSpatialReference; singleFusedMapCache?: boolean; tileInfo?: EsriTileInfo; geometryType?: string; displayField?: string; fields?: EsriField[]; minScale?: number; maxScale?: number; maxRecordCount?: number; tileMaxRecordCount?: number; standardMaxRecordCount?: number; maxRecordCountFactor?: number; supportsCoordinatesQuantization?: boolean; objectIdField?: string; objectIdFieldName?: string; supportedQueryFormats?: string; advancedQueryCapabilities?: { supportsPagination?: boolean; supportsQueryWithResultType?: boolean; supportsReturningQueryExtent?: boolean; supportsMaxRecordCountFactor?: boolean; }; }; export type EsriGeometry = { x?: number; y?: number; points?: GeoJSON.Position[]; paths?: GeoJSON.Position[][]; rings?: GeoJSON.Position[][]; spatialReference?: EsriSpatialReference; }; export type EsriIdentifyResult = { layerId?: number; layerName?: string; attributes?: Record; geometry?: EsriGeometry | null; }; export type EsriQueryFeature = { attributes?: Record; geometry?: EsriGeometry | null; }; export declare const isWebMercator: (spatialReference?: EsriSpatialReference) => boolean; export declare const isGeographic: (spatialReference?: EsriSpatialReference) => boolean; export declare const esriExtentToBounds: (extent?: EsriExtent) => LngLatBoundsLike | undefined; export declare const scaleToZoom: (scale?: number) => number | undefined; export declare const esriZoomRange: (metadata: EsriMetadata) => { minzoom?: number; maxzoom?: number; }; export declare const esriObjectIdField: (metadata: EsriMetadata) => string; export declare const esriExtentToSourceBounds: (extent?: EsriExtent) => [number, number, number, number] | undefined; export declare const esriGeometryToGeoJSON: (geometry?: EsriGeometry | null) => GeoJSON.Geometry | null; export declare const esriIdentifyResultsToFeatures: (results?: EsriIdentifyResult[]) => GeoJSON.Feature[]; export declare const esriQueryFeaturesToGeoJSON: (features?: EsriQueryFeature[], objectIdFieldName?: string) => GeoJSON.Feature[]; export declare const throwOnEsriError: (body: T, url: string) => T; export declare const fetchEsriJson: (url: string, params?: Record, requestTransform?: RequestTransform, signal?: AbortSignal, kind?: RequestResourceType) => Promise; export declare const hasCapability: (metadata: EsriMetadata, capability: string) => boolean; export declare const splitEsriLayerUrl: (url: string) => { serviceUrl: string; layerId?: string; };