import { BindingPrimitive } from "./types"; /** Data structure for a texture */ export interface TextureData { width: number; height: number; numberComponents: number; type: "f32" | "u8" | "HTMLImageElement" | "HTMLCanvasElement"; data: Float32Array | Uint8Array | Uint8ClampedArray | HTMLCanvasElement | HTMLImageElement; dimensions: number; } /** Texture data binding */ export declare abstract class TextureBinding { abstract getTextureData(): TextureData; } export declare type ArrayBindingFunction = (datum: any, index: number, data: any[]) => BindingPrimitive; export declare class ArrayBinding extends TextureBinding { private _data; private _valueFunction; private _dirty; private _textureData; getTextureData(): TextureData; data(): any[]; data(data: any[]): ArrayBinding; value(): ArrayBindingFunction; value(func: ArrayBindingFunction): ArrayBinding; } export declare class Image extends TextureBinding { _data: TextureData; setImage(image: HTMLImageElement | HTMLCanvasElement): void; getTextureData(): TextureData; } export declare function array(): ArrayBinding;