import { Shader } from "../shader"; import { Texture } from "../texture"; export declare enum RenderQueue { Opaque = 0, Blend = 1 } export declare class Material { static pool: Material[]; name: string; shader: Shader; isDirty: boolean; textures: Map; doubleSided: boolean; queue: RenderQueue; uniforms: {}; ref: number; constructor(shader: Shader, name?: any, doubleSided?: boolean); static clone(mat: Material): Material; static useMaterial(mat: Material, ctx: WebGL2RenderingContext): void; static setUniform(mat: Material, key: string, value: any): void; static updateUniform(mat: Material): void; static bindAllTextures(mat: Material, ctx: WebGL2RenderingContext, force?: boolean): void; static unbindAllTextures(mat: Material, ctx: WebGL2RenderingContext): void; static setTexture(mat: Material, name: string, tex: Texture): void; static SHADER_PATH: string; } export declare class Uniform { value: any; isDirty: boolean; }