import type { LngLatBoundsLike, MapGeoJSONFeature } from 'maplibre-gl'; import GeoJsonResource from './geojson'; import type { ResourceKind } from './resource'; import { type EsriExtent, type EsriMetadata } from '../esri'; import type { RequestTransform } from '../request'; export type EsriVectorSourceSpec = { tiles: string[]; minzoom: number; maxzoom: number; bounds?: [number, number, number, number]; }; export default class EsriFeatureLayerResource extends GeoJsonResource { readonly kind: ResourceKind; private layerUrl; private metadata; private featureCollection; private stoppedShort; private cappedZoom?; private cappedLimit; private pendingRead?; private summary?; private tileDrawn; private tileFailureReported; constructor(id: string, url: string, bounds?: LngLatBoundsLike, requestTransform?: RequestTransform); label(): string; get truncated(): boolean; get featuresRead(): number; get cappedTiles(): { zoom: number; limit: number; } | undefined; getZoomRange(): Promise<{ minzoom?: number; maxzoom?: number; }>; getVectorLayers(): Promise; getFeatureCount(): Promise; tilesFeatures(): Promise; getVectorSourceSpec(token: string): Promise; fetchTile(z: number, x: number, y: number, signal?: AbortSignal): Promise; getData(): Promise; private readFeatures; getBounds(): Promise; protected getQuerySummary(): Promise<{ count?: number; extent?: EsriExtent; }>; protected getOutFields(): Promise; readsAllFields(): Promise; getAttributes(objectIds: (string | number)[], signal?: AbortSignal): Promise>; expandFeatures(features: MapGeoJSONFeature[]): Promise; protected getMetadata(): Promise; private getPage; private getPaging; private queryTile; private tileResultType; private getDensityFloor; private supportsGeoJson; private supportsPaging; }