type CesiumModule = typeof import('cesium'); import type { TerrainProvider, TilingScheme, TerrainData, Rectangle, Credit, TileAvailability, Event as CesiumEvent } from 'cesium'; export interface CesiumGeoTIFFTerrainProviderOptions { url: string; projection?: string; forceProjection?: boolean; nodata?: number; Cesium: CesiumModule; } /** * Custom Cesium Terrain Provider for GeoTIFF elevation data * * This provider loads a GeoTIFF file containing elevation data and provides * it to Cesium's terrain system as a heightmap. */ export declare class CesiumGeoTIFFTerrainProvider implements TerrainProvider { private Cesium; private image?; private fromProjection; private sourceBounds; private wgs84Bounds; private width; private height; private noDataValue; private ready; private _readyPromise; private heightmapWidth; private heightmapHeight; private proj4; tilingScheme: TilingScheme; constructor(options: CesiumGeoTIFFTerrainProviderOptions); private initialize; /** * Get the coverage rectangle in WGS84 coordinates */ get rectangle(): Rectangle; /** * Request tile geometry for a specific tile */ requestTileGeometry(x: number, y: number, level: number): Promise; /** * Create a flat heightmap for tiles outside the GeoTIFF bounds */ private createFlatHeightmap; /** * Get the availability of tiles */ get availability(): TileAvailability | undefined; /** * Get the tiling scheme */ getTilingScheme(): TilingScheme; /** * Get the maximum geometric error allowed at a specific level * Required by Cesium's TerrainProvider interface * * The geometric error is the difference (in meters) between the actual terrain * and the terrain approximation at this level. Higher levels have lower error. */ getLevelMaximumGeometricError(level: number): number; loadTileDataAvailability(_x: number, _y: number, _level: number): undefined | Promise; /** * Check if tile data is available for a specific tile * Required by Cesium's TerrainProvider interface */ getTileDataAvailable(x: number, y: number, level: number): boolean | undefined; /** * Check if the provider is ready */ get readyPromise(): Promise; /** * Get the credit to display */ get credit(): Credit; /** * Check if the provider has water mask */ get hasWaterMask(): boolean; /** * Check if the provider has vertex normals */ get hasVertexNormals(): boolean; /** * Get the error event */ get errorEvent(): CesiumEvent; } /** * Factory function to create a CesiumGeoTIFFTerrainProvider */ export declare function createCesiumGeoTIFFTerrainProvider(options: CesiumGeoTIFFTerrainProviderOptions): Promise; export {};