import { Object3D, ShaderMaterial, BoxGeometry, InstancedMesh } from "three";
import { Context } from "../context";
export interface InstancedWallConfig {
    size: number;
    matrixes: number[];
    ids: string[];
    colors: number[];
    opacities: number[];
    maxZs: number[];
    minZs: number[];
}
export declare class InstancedWall extends Object3D {
    geometry: BoxGeometry;
    material: ShaderMaterial | null;
    mesh?: InstancedMesh;
    elements: InstancedWallConfig | null;
    originOpacities: number[];
    constructor(context: Context, elements: InstancedWallConfig);
    init(): Promise<void>;
    initMaterial(): void;
    initMesh(): void;
    setOpacityByIndex(index: number, opacity: number): void;
    setOpacity(opacity: number, force?: boolean): void;
    dispose(): void;
}
