import { ShaderMaterial2 } from './ShaderMaterial2';
import { BufferGeometry, Camera, ColorSpace, Group, Object3D, Scene, ShaderMaterialParameters, WebGLProgramParametersWithUniforms, WebGLRenderer } from 'three';
import { IMaterialEventMap, IMaterialUserData } from '../IMaterial';
export declare class ExtendedShaderMaterial<TE extends IMaterialEventMap = IMaterialEventMap> extends ShaderMaterial2<TE & IMaterialEventMap> {
    ['constructor']: (typeof ExtendedShaderMaterial) & (typeof ShaderMaterial2);
    textures: {
        colorSpace: ColorSpace;
        id: string;
    }[];
    userData: IMaterialUserData;
    constructor(parameters: ShaderMaterialParameters, textureIds: string[], isRawShaderMaterial?: boolean);
    setTextureIds(ids: string[]): void;
    private _setUniformTexSize;
    onBeforeRender(renderer: WebGLRenderer, scene: Scene, camera: Camera, geometry: BufferGeometry, object: Object3D, group: Group): void;
    onBeforeCompile(s: WebGLProgramParametersWithUniforms, renderer: WebGLRenderer): void;
    customProgramCacheKey(): string;
}
//# sourceMappingURL=../../src/core/material/ExtendedShaderMaterial.d.ts.map