import type { ColorStop } from '../geotiff/utils/colormap-utils'; import { GeoTIFFTileProcessor } from '../geotiff/utils/GeoTIFFTileProcessor'; type CesiumModule = typeof import('cesium'); import type { Credit, Event as CesiumEvent, ImageryProvider, Rectangle, TileDiscardPolicy, TilingScheme } from 'cesium'; export interface CesiumGeoTIFFImageryOptions { Cesium: CesiumModule; rectangleDegrees: [number, number, number, number]; tileProcessor: GeoTIFFTileProcessor; tileSize: number; resolution: number; resampleMethod: 'near' | 'bilinear'; colorStops?: ColorStop[]; minimumLevel?: number; maximumLevel?: number; } /** * Custom ImageryProvider that renders GeoTIFF tiles on demand using * the shared GeoTIFFTileProcessor (triangulation-based reprojection). */ export declare class GeoTIFFImageryProvider implements ImageryProvider { readonly tileWidth: number; readonly tileHeight: number; readonly tilingScheme: TilingScheme; readonly rectangle: Rectangle; readonly errorEvent: CesiumEvent; readonly credit: Credit | undefined; readonly tileDiscardPolicy: TileDiscardPolicy | undefined; readonly proxy: undefined; readonly hasAlphaChannel = true; readonly minimumLevel: number; readonly maximumLevel: number | undefined; private readonly Cesium; private readonly tileProcessor; private readonly resolution; private readonly resampleMethod; private readonly colorStops?; private readonly readyPromiseInternal; ready: boolean; constructor(options: CesiumGeoTIFFImageryOptions); get tilingSchemeName(): string | undefined; get readyPromise(): Promise; get tileCredits(): import('cesium').Credit[] | undefined; getTileCredits(_x: number, _y: number, _level: number): import('cesium').Credit[] | undefined; get url(): string | undefined; /** * Flips a canvas vertically (Y-axis inversion) for Cesium. * Creates a new canvas with the flipped content. * * @param sourceCanvas - The canvas to flip * @param width - Width of the canvas * @param height - Height of the canvas * @returns A new canvas with vertically flipped content, or the source canvas if flipping fails */ private flipCanvasVertically; /** * Creates a flipped ImageBitmap from RGBA data. * Uses ImageBitmap for better performance when available. * * @param rgbaData - The RGBA pixel data * @param sampleSize - Size of the tile (width and height) * @returns A flipped ImageBitmap, or undefined if creation fails */ private createFlippedImageBitmap; /** * Creates a flipped image (ImageBitmap or Canvas) from RGBA data. * Prefers ImageBitmap for better performance, falls back to Canvas. * * @param rgbaData - The RGBA pixel data * @returns A flipped ImageBitmap or Canvas, or undefined if creation fails */ private createFlippedImageFromRGBA; requestImage(x: number, y: number, level: number): Promise; pickFeatures(): undefined; } export {};