///
import { Shader } from "./shader";
import { Texture } from "./texture";
export declare enum RenderQueue {
Opaque = 0,
Blend = 1
}
export declare class Material {
name: string;
shader: Shader;
isDirty: boolean;
textures: Map;
doubleSided: boolean;
queue: RenderQueue;
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, ctx: WebGL2RenderingContext): 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;
}