/**
* @typedef {HTMLImageElement|HTMLCanvasElement|HTMLVideoElement} ImageLike
*/
/**
* @typedef {Uint8Array|Uint8ClampedArray|Float32Array|DataView} ArrayLike
*/
/**
* Data that can be used with a DataTile.
* @typedef {ArrayLike|ImageLike} Data
*/
/**
* @param {Data} data Tile data.
* @return {ImageLike|null} The image-like data.
*/
export function asImageLike(data: Data): ImageLike | null;
/**
* @param {Data} data Tile data.
* @return {ArrayLike|null} The array-like data.
*/
export function asArrayLike(data: Data): ArrayLike | null;
/**
* @param {ImageLike} image The image.
* @return {Uint8ClampedArray} The data.
*/
export function toArray(image: ImageLike): Uint8ClampedArray;
export default DataTile;
export type ImageLike = HTMLImageElement | HTMLCanvasElement | HTMLVideoElement;
export type ArrayLike = Uint8Array | Uint8ClampedArray | Float32Array | DataView;
/**
* Data that can be used with a DataTile.
*/
export type Data = ArrayLike | ImageLike;
export type Options = {
/**
* Tile coordinate.
*/
tileCoord: import("./tilecoord.js").TileCoord;
/**
* Data loader. For loaders that generate images,
* the promise should not resolve until the image is loaded.
*/
loader: () => Promise;
/**
* A duration for tile opacity
* transitions in milliseconds. A duration of 0 disables the opacity transition.
*/
transition?: number | undefined;
/**
* Use interpolated values when resampling. By default,
* the nearest neighbor is used when resampling.
*/
interpolate?: boolean | undefined;
/**
* Tile size.
*/
size?: import("./size.js").Size | undefined;
};
/**
* @typedef {Object} Options
* @property {import("./tilecoord.js").TileCoord} tileCoord Tile coordinate.
* @property {function(): Promise} loader Data loader. For loaders that generate images,
* the promise should not resolve until the image is loaded.
* @property {number} [transition=250] A duration for tile opacity
* transitions in milliseconds. A duration of 0 disables the opacity transition.
* @property {boolean} [interpolate=false] Use interpolated values when resampling. By default,
* the nearest neighbor is used when resampling.
* @property {import('./size.js').Size} [size=[256, 256]] Tile size.
* @api
*/
declare class DataTile extends Tile {
/**
* @param {Options} options Tile options.
*/
constructor(options: Options);
/**
* @type {function(): Promise}
* @private
*/
private loader_;
/**
* @type {Data}
* @private
*/
private data_;
/**
* @type {Error}
* @private
*/
private error_;
/**
* @type {import('./size.js').Size|null}
* @private
*/
private size_;
/**
* Get the tile size.
* @return {import('./size.js').Size} Tile size.
*/
getSize(): import('./size.js').Size;
/**
* Get the data for the tile.
* @return {Data} Tile data.
* @api
*/
getData(): Data;
/**
* Get any loading error.
* @return {Error} Loading error.
* @api
*/
getError(): Error;
}
import Tile from './Tile.js';
//# sourceMappingURL=DataTile.d.ts.map