import type { AlphaMode, ScaleMode, TextureFormat, TextureLikeObject, TextureLikeReactiveObject, TextureSource, WebGLRenderer, WrapMode } from '../../../core'; import { Resource } from '../../../core'; export interface Texture2DProperties extends Partial> { source?: T; } export declare class Texture2D extends Resource implements TextureLikeReactiveObject { static get EMPTY(): Texture2D; static get WHITE(): Texture2D; static get BLACK(): Texture2D; static get RED(): Texture2D; static get GREEN(): Texture2D; static get BLUE(): Texture2D; uploadMethodId: string; source: T; width: number; height: number; pixelRatio: number; format: TextureFormat; alphaMode: AlphaMode; mipLevelCount: number; mipmap: boolean; addressModeU: WrapMode; addressModeV: WrapMode; addressModeW: WrapMode; magFilter: ScaleMode; minFilter: ScaleMode; mipmapFilter: ScaleMode; isPowerOfTwo: boolean; get sourceWidth(): number; get sourceHeight(): number; get pixelWidth(): number; get pixelHeight(): number; constructor(properties?: Texture2DProperties); isValid(): boolean; protected _updateProperty(key: string, value: any, oldValue: any): void; updateSize(): void; activate(renderer: WebGLRenderer, location?: number): boolean; inactivate(renderer: WebGLRenderer): void; protected _destroy(): void; }