import { PolygonGeometry } from "../types";
import { Context } from "../context/context";
import { BufferGeometry, LineBasicMaterial, LineSegments, Mesh, Object3D, ShaderMaterial, Vector3 } from "three";
export interface WallOptions {
    id: string;
    height: number;
    fillColor: string;
    fillOpacity: number;
    strokeColor: string;
    strokeOpacity: number;
    geometry: PolygonGeometry;
    deltaHeight?: number;
    userData: Record<string, any>;
}
export declare class Wall extends Object3D {
    private context;
    options: WallOptions[];
    geometry?: BufferGeometry;
    material?: ShaderMaterial;
    lineMaterial?: LineBasicMaterial;
    lineGeometry?: BufferGeometry;
    Mesh?: Mesh;
    LineMesh?: LineSegments;
    private originFillOpacity;
    constructor(context: Context, options: WallOptions[]);
    initGeometry(): Promise<void>;
    initMaterial(): void;
    initLineMaterial(): LineBasicMaterial;
    getBorderPoints(option: WallOptions): Vector3[];
    initLineGeometry(): void;
    createBorder(): LineSegments<BufferGeometry<import("three").NormalBufferAttributes>, LineBasicMaterial, import("three").Object3DEventMap>;
    setOpacity(opacity: number, force?: boolean): void;
    init(): Promise<void>;
    dispose(): void;
}
