import { Color, CompositeLayer, CompositeLayerProps, DefaultProps, Layer, LayersList, Material, TextureSource, UpdateParameters } from '@deck.gl/core'; import { SimpleMeshLayer } from '@deck.gl/mesh-layers'; import type { MeshAttributes } from '@loaders.gl/schema'; import { TileLayerProps, GeoBoundingBox, _TileLoadProps as TileLoadProps, _Tile2DHeader as Tile2DHeader, NonGeoBoundingBox } from '@deck.gl/geo-layers'; import CogTiles from '../core/CogTiles'; import { GeoImageOptions, TileResult } from '../core/GeoImage'; export type Bounds = [minX: number, minY: number, maxX: number, maxY: number]; export type TileBoundingBox = NonGeoBoundingBox | GeoBoundingBox; export type ZRange = [minZ: number, maxZ: number]; export type URLTemplate = string | string[] | null; export declare const urlType: { type: "object"; value: URLTemplate; validate: (value: any, propType: any) => any; equal: (value1: any, value2: any) => boolean; }; type ElevationDecoder = { rScaler: number; gScaler: number; bScaler: number; offset: number; }; type TerrainLoadProps = { bounds: Bounds; elevationData: string | null; elevationDecoder: ElevationDecoder; meshMaxError: number; signal?: AbortSignal; }; type MeshAndTexture = [TileResult | null, TextureSource | null]; /** All properties supported by CogTerrainLayer */ export type CogTerrainLayerProps = _CogTerrainLayerProps & TileLayerProps & CompositeLayerProps; /** Props added by the CogTerrainLayer */ type _CogTerrainLayerProps = { /** Image url that encodes height data. * */ elevationData: URLTemplate; isTiled?: boolean; /** Image url to use as texture. * */ texture?: URLTemplate; /** Martini error tolerance in meters, smaller number -> more detailed mesh. Set to 'auto' for dynamic per-zoom quantization. * */ meshMaxError?: number | 'auto'; /** Bounding box of the terrain image, [minX, minY, maxX, maxY] in world coordinates. * */ bounds?: Bounds | null; /** Color to use if texture is unavailable. * */ color?: Color; /** Object to decode height data, from (r, g, b) to height in meters. * */ elevationDecoder?: ElevationDecoder; /** Whether to render the mesh in wireframe mode. * */ wireframe?: boolean; /** Material props for lighting effect. * */ material?: Material; /** * TODO */ terrainOptions: GeoImageOptions; /** Pre-initialized CogTiles object for terrain */ cogTiles?: CogTiles; /** * When true, suppresses any texture generated by the tile (e.g. heatmap/hillshade) * and renders the mesh in the plain `color` instead. * Useful for showing a neutral grey terrain during mode transitions. */ disableTexture?: boolean; /** * @deprecated Use `loadOptions.terrain.workerUrl` instead */ workerUrl?: string; }; /** Render mesh surfaces from height map images. */ export default class CogTerrainLayer extends CompositeLayer>>> { static defaultProps: DefaultProps<_CogTerrainLayerProps>; static layerName: string; terrainUrl: string; state: { isTiled?: boolean; terrain?: MeshAttributes; zRange?: ZRange | null; minZoom: number; maxZoom: number; terrainCogTiles: CogTiles; initialized: boolean; }; initializeState(context: any): Promise; init(): Promise; updateState({ props, oldProps }: UpdateParameters): void; loadTerrain({ elevationData, bounds, elevationDecoder, meshMaxError, signal, }: TerrainLoadProps): Promise | null; getTiledTerrainData(tile: TileLoadProps): Promise; renderSubLayers(props: TileLayerProps & { id: string; data: MeshAndTexture | null; tile: Tile2DHeader; }): SimpleMeshLayer | null; onViewportLoad(tiles?: Tile2DHeader[]): void; renderLayers(): Layer | null | LayersList; } export {};