import { Material, Texture } from 'three';
import { type Uniforms } from './SpeckleMaterial.js';
import SpeckleBasicMaterial from './SpeckleBasicMaterial.js';
declare class SpeckleTextMaterial extends SpeckleBasicMaterial {
    setMatrixTexture: (texture: Texture) => void;
    protected get vertexProgram(): string;
    protected get fragmentProgram(): string;
    protected get uniformsDef(): Uniforms;
    /** We need a unique key per program */
    customProgramCacheKey(): string;
    protected copyCustomUniforms(material: Material): void;
    getDerivedMaterial(): any;
    /** Sadly, troika does not export this for no good reason so we neee to copy it over */
    getDerivedBatchedMaterial(): any;
    fastCopy(from: Material, to: Material): void;
    setGradientTexture(texture: Texture): void;
}
export default SpeckleTextMaterial;
