import { type IUniform, Vector2, Material, type MeshBasicMaterialParameters, Scene, Camera, BufferGeometry, Object3D } from 'three';
import { Matrix4 } from 'three';
import { ExtendedMeshBasicMaterial, type Uniforms } from './SpeckleMaterial.js';
import type { SpeckleWebGLRenderer } from '../objects/SpeckleWebGLRenderer.js';
declare class SpeckleTextMaterial extends ExtendedMeshBasicMaterial {
    protected static readonly matBuff: Matrix4;
    protected static readonly vecBuff: Vector2;
    private _billboardPixelHeight;
    protected get vertexProgram(): string;
    protected get fragmentProgram(): string;
    protected get baseUniforms(): {
        [uniform: string]: IUniform;
    };
    protected get uniformsDef(): Uniforms;
    set billboardPixelHeight(value: number);
    get billboardPixelHeight(): number;
    constructor(parameters: MeshBasicMaterialParameters, defines?: Array<string>);
    /** We need a unique key per program */
    customProgramCacheKey(): string;
    copy(source: Material): this;
    getDerivedMaterial(): any;
    fastCopy(from: Material, to: Material): void;
    /** Called by three.js render loop */
    onBeforeRender(_this: SpeckleWebGLRenderer, _scene: Scene, camera: Camera, _geometry: BufferGeometry, _object: Object3D): void;
}
export default SpeckleTextMaterial;
