import { Board } from "../../../DatabaseServices/Entity/Board";
import { Entity } from '../../../DatabaseServices/Entity/Entity';
import { TemplateRecord } from "../../../DatabaseServices/Template/TemplateRecord";
import { ISpaceParse } from "../../../Geometry/SpaceParse/ISpaceParse";
import { BoardProcessOption } from "../../../UI/Store/BoardInterface";
import { DoorStore } from "../../../UI/Store/DoorDrawerStore/DoorStore";
import { IDoorConfigOption, IDoorInfo } from "../../../UI/Store/DoorInterface";
export declare class DrawDoorTool {
    private store;
    protected spaceParse: ISpaceParse;
    /**id模板对应表*/
    protected _idTempMap: Map<string, TemplateRecord>;
    protected colWidths: (number | string)[];
    protected rowHeighs: (number | string)[];
    protected isDrawVerBrS: boolean[];
    protected isDrawLayBrS: boolean[];
    protected surroundOption: BoardProcessOption;
    /** 每个格子的信息Map*/
    protected rowColIdMap: Map<string, IDoorInfo>;
    private hingeSet;
    protected option: IDoorConfigOption;
    protected doorInfos: IDoorInfo[];
    private currentHandleProps;
    constructor(store: DoorStore, spaceParse: ISpaceParse);
    private GetHeightExpr;
    protected Init(): Promise<void>;
    Draw(): Promise<void>;
    protected AppendTemplateParam(name: string, value: number, des: string, temp: TemplateRecord, expr?: string): void;
    protected GetRootTemplate(): TemplateRecord;
    private GetPositionSpace;
    protected GetHandleTemp(info: IDoorInfo, doorTemp: TemplateRecord): void;
    protected GetHingeTemp(info: IDoorInfo, door: TemplateRecord): void;
    protected RelativeMetalsToBoard(allEntitys: Entity[]): boolean;
    private SetHingeType;
    getSpaceAllBoards(): Board[];
    protected GetDoorTemp(info: IDoorInfo): TemplateRecord;
    protected SetOpenDir(doorsTemp: TemplateRecord, info: IDoorInfo): void;
    private GetBoardOpenDir;
    /**
     *上下偏移判断位置是否超出门板 或与其他层板碰撞 上下上下尝试n个单位后停止
     *
     * @private
     * @param {number} doorHight  门板高度
     * @param {Box3} enBox        铰链空间box
     * @param {Entity[]} layers   所有层板
     * @param {number} distance   一次偏移量
     * @param {Matrix4} ocs
     * @param {number} number     偏移次数  正负表方向 上下
     * @return {*}  {number}
     * @memberof DrawDoorTool
     */
    private GetHingeMoveNum;
    private MoveAgain;
    private IsIntersects;
}
//# sourceMappingURL=DrawDoorTool.d.ts.map