import { BBOXtype } from "./bbox"; import { CustomError } from "./Error"; declare global { interface AbortController { runing?: boolean; reject?: Function; } interface Promise { cancel?: () => void; canceled?: boolean; } } export type postProcessingOptionsType = { flipY?: boolean; filter?: string; opacity?: number; gaussianBlurRadius?: number; mosaicSize?: number; oldPhoto?: boolean; invertColor?: boolean; ignorePostProcessing?: boolean; } export type fetchOptionsType = { referrer?: string; headers?: Record; fetchOptions?: Record; timeout?: number; indexedDBCache?: boolean; errorLog?: boolean; } export type returnResultType = { returnBlobURL?: boolean; returnUint32Buffer?: boolean; returnBase64?: boolean; forceReturnImage?: boolean; quality?: number; } type tileType = ImageBitmap | string | HTMLCanvasElement | HTMLImageElement | OffscreenCanvas; export type getTileOptions = { url: tileType | Array; globalCompositeOperation?: GlobalCompositeOperation; } & postProcessingOptionsType & fetchOptionsType & returnResultType; export type urlTemplateFunction = (x: number, y: number, z: number, domain?: string) => string; export type layoutTilesOptions = { urlTemplate: string | urlTemplateFunction; tiles: Array<[number, number, number]>; subdomains?: Array; debug?: boolean; } & postProcessingOptionsType & fetchOptionsType & returnResultType; export type encodeTerrainTileOptions = { url: string; terrainType: 'mapzen' | 'tianditu' | 'cesium' | 'arcgis' | 'qgis-gray'; minHeight?: number; maxHeight?: number; terrainWidth?: number; tileSize?: number; terrainColors?: Array<[number, string]> } & fetchOptionsType & returnResultType; export type getTileWithMaxZoomOptions = Omit & { urlTemplate: string | urlTemplateFunction | Array; maxAvailableZoom: number; x: number; y: number; z: number; subdomains?: Array; tms?: boolean; fetchParentTileOn404?: boolean; } export type clipTileOptions = { tile: ImageBitmap | string; tileBBOX: BBOXtype; projection: string; maskId: string; tileSize?: number; reverse?: boolean; bufferSize?: number; } & returnResultType; export type tileIntersectMaskOptions = { tileBBOX: BBOXtype; maskId: string; }; export type transformTileOptions = getTileWithMaxZoomOptions & { projection: 'EPSG:4326' | 'EPSG:3857'; zoomOffset?: number; debug?: boolean; } export type rectifyTileOptions = getTileWithMaxZoomOptions & { projection: 'EPSG:4326' | 'EPSG:3857'; tileBBOX: BBOXtype; transform: 'WGS84-GCJ02' | 'GCJ02-WGS84', tileSize: number; debug?: boolean; mapZoom?: number; } export type rectifyBaiduTileOptions = getTileWithMaxZoomOptions & { tileBBOX: BBOXtype; transform: 'BAIDU-WGS84' | 'BAIDU-GCJ02', tileSize: number; debug?: boolean; mapZoom?: number; } export type colorTerrainTileOptions = { tile: tileType; colors: Array<[number, string]>; } & postProcessingOptionsType & returnResultType; export type privateOptions = getTileOptions & { __taskId?: number; __workerId?: number; } export type GeoJSONPolygon = { type: 'Feature', geometry: { type: 'Polygon', coordinates: number[][][] }, properties?: Record; bbox?: BBOXtype } export type GeoJSONMultiPolygon = { type: 'Feature', geometry: { type: 'MultiPolygon', coordinates: number[][][][] }, properties?: Record; bbox?: BBOXtype } export type injectImageOptions = { imageId: string; url: string; imageBBOX: BBOXtype; } & fetchOptionsType; export type getImageTileOptions = { tileBBOX: BBOXtype, imageId: string; projection: string; tileSize?: number; } & postProcessingOptionsType & returnResultType; export type terrainTileFixBoundaryOptions = { tiles: Array<{ x: number, y: number, z: number, image: ImageBitmap | HTMLImageElement | HTMLCanvasElement }>; } & returnResultType; export type clipBufferOptions = { bufferSize?: number; polygons: number[][][][] } export type imageResultType = ImageBitmap | string | ArrayBuffer; export type resolveResultType = (image: imageResultType) => void; export type rejectResultType = (error: CustomError) => void; export type sliceImageItemType = { x: number; y: number; id: number; width: number; height: number; row: number; col: number; image: imageResultType; } export type sliceImageResultType = { rows: number; cols: number; rowWidth: number; colHeight: number; width: number; height: number; items: Array; } export type getVTTileOptions = { url: string | Array; customProperties?: (layerName: string, layer: any, feature: any, featureIndex: number) => void; } & fetchOptionsType; export type TileItem = { x: number; y: number; z: number; tileImage?: ImageBitmap; }