import { Vector3, Material, IUniform, Vector2 } from 'three';
import { Matrix4 } from 'three';
import { ExtendedMeshBasicMaterial, Uniforms } from './SpeckleMaterial';
declare class SpeckleBasicMaterial extends ExtendedMeshBasicMaterial {
    protected static readonly matBuff: Matrix4;
    protected static readonly vecBuff0: Vector3;
    protected static readonly vecBuff1: Vector3;
    protected static readonly vecBuff2: Vector3;
    protected static readonly vecBuff3: Vector2;
    private _billboardPixelHeight;
    protected get vertexShader(): string;
    protected get fragmentShader(): string;
    protected get baseUniforms(): {
        [uniform: string]: IUniform;
    };
    protected get uniformsDef(): Uniforms;
    set billboardPixelHeight(value: number);
    constructor(parameters: any, defines?: any[]);
    /** We need a unique key per program */
    customProgramCacheKey(): string;
    copy(source: any): this;
    fastCopy(from: Material, to: Material): void;
    /** Called by three.js render loop */
    onBeforeRender(_this: any, scene: any, camera: any, geometry: any, object: any, group: any): void;
}
export default SpeckleBasicMaterial;
