import { App } from '../core/App';
import { Corner } from './Corner';
import { DoorWindow } from './DoorWindow';
import { Entity } from './Entity';
import { Point3D } from '../misc/Point3D';
/**
 * 墙基类
 */
export declare class Wall extends Entity {
    /**
     * 默认高度
     */
    static defaultHeight: number;
    /**
     * 默认厚度
     */
    static defaultThickness: number;
    protected _startCorner: Corner;
    protected _endCorner: Corner;
    protected _height: number;
    protected _thickness: number;
    /**
     * 实例化一个墙对象
     * @param app 应用
     */
    constructor(app: App);
    /**
     * 获取或设置高度
     */
    get height(): number;
    set height(value: number);
    /**
     * 获取或设置厚度
     */
    get thickness(): number;
    set thickness(value: number);
    /**
     * 获取或设置开始墙角
     */
    get startCorner(): Corner;
    set startCorner(value: Corner);
    /**
     * 获取或设置结束墙角
     */
    get endCorner(): Corner;
    set endCorner(value: Corner);
    /**
     * 获取实例类型
     */
    get instanceClass(): any;
    /**
     * 获取门窗
     */
    get doorWindows(): DoorWindow[];
    /**
     * 获取墙的长度
     */
    get length(): number;
    /**
     * 获取旋转的角度（Z轴正向到当前墙的逆时针角度），取值范围[0,360)
     */
    get angle(): number;
    /**
     * 计算包围盒
     */
    computeBoundingInfo(): void;
    /**
     * 序列化成JSON对象
     */
    toJson(): any;
    /**
     * 从JSON对象反序列化（仅生成层级树）
     * @param json JSON对象
     */
    fromJson(json: any): void;
    /**
     * 创建（仅当前层级可见对象）
     * @param force 是否强制
     */
    build(force?: boolean): Promise<void>;
    /**
     * 设置子节点列表
     */
    setSubNodes(): void;
    /**
     * 获取另一个墙角
     * @param corner
     */
    getOtherCorner(corner: Corner): Corner | null;
    /**
     * 世界坐标转开始墙点参考系坐标
     * @param world 世界坐标
     */
    worldToStartCorner(world: Point3D): Point3D;
}
