import { Object3D, Mesh, Vector3, BufferGeometry, LineBasicMaterial, LineSegments, ShaderMaterial } from "three";
import { GraphicOptions } from "../types";
import { Context } from "../context/context";
import { GraphicEventMap, GraphicOptionsParam } from "./graphic";
import { AibeeGraphicLayer } from "src/loader/AibeeLoader/type";
interface MergeGraphicEventMap extends GraphicEventMap {
    "init-geometry": {
        geometry: BufferGeometry;
    };
}
export declare class MergeGraphic extends Object3D<MergeGraphicEventMap> {
    private context;
    mergedElement?: AibeeGraphicLayer["mergedElements"][0] | undefined;
    geometry?: BufferGeometry;
    material?: ShaderMaterial;
    mesh?: Mesh;
    line?: LineSegments;
    lineMaterial?: LineBasicMaterial;
    lineGeometry?: BufferGeometry;
    options: GraphicOptions[];
    constructor(context: Context, options: GraphicOptionsParam[], mergedElement?: AibeeGraphicLayer["mergedElements"][0] | undefined);
    initMergedElement(): void;
    init(): Promise<void>;
    initGeometry(): Promise<BufferGeometry<import("three").NormalBufferAttributes>>;
    initMaterial(): void;
    initLineMaterial(): LineBasicMaterial;
    initMesh(): void;
    getBorderPoints(): Vector3[];
    initLineGeometry(): void;
    createBorder(): LineSegments<BufferGeometry<import("three").NormalBufferAttributes>, LineBasicMaterial, import("three").Object3DEventMap>;
    dispose(): void;
}
export {};
