import { Object3D, ShaderMaterial, BoxGeometry, InstancedMesh, Matrix4 } from "three";
import { Context } from "../context";
export interface InstancedGraphicConfig {
    size: number;
    matrixes: number[];
    ids: string[];
    colors: number[];
    opacities: number[];
    maxZs: number[];
}
export declare class InstancedGraphic extends Object3D {
    geometry: BoxGeometry;
    material: ShaderMaterial | null;
    mesh?: InstancedMesh;
    elements: InstancedGraphicConfig | null;
    originOpacities: number[];
    constructor(context: Context, elements: InstancedGraphicConfig);
    init(): Promise<void>;
    initMaterial(): void;
    initMesh(): void;
    setColorByIndex(index: number, color: string): void;
    setOpacityByIndex(index: number, opacity: number): void;
    setMatrixByIndex(index: number, matrix: Matrix4): void;
    setMaxZByIndex(index: number, maxZ: number): void;
    setColorById(id: string, color: string): void;
    setOpacityById(id: string, opacity: number): void;
    setMatrixById(id: string, matrix: Matrix4): void;
    setMaxZById(id: string, maxZ: number): void;
    setOpacity(opacity: number, force?: boolean): void;
    pushElements(elements: InstancedGraphicConfig): void;
    removeInstanceById(id: string): void;
    refesh(): void;
    dispose(): void;
}
