import { Vector3 } from "three";
import { KeyWord } from "../../Common/InputState";
import { Polyline } from "../../DatabaseServices/Entity/Polyline";
import { RoomWallBase } from "../../DatabaseServices/Room/Entity/Wall/RoomWallBase";
import { RoomParse } from "../../DatabaseServices/Room/ParseService/RoomParseUtil";
import { Command } from "../../Editor/CommandMachine";
import { WallMode } from "./RoomEnum";
import { WallDirMode } from "./WallDirMode";
export declare class Command_DrawWall implements Command {
    _WallThickness: number;
    _WallHeight: number;
    _DrawWallMode: WallMode;
    get ModeMsg(): string;
    GetKeyWords(): KeyWord[];
    _DrawPts: Vector3[];
    _UndoPts: Vector3[];
    exec(): Promise<void>;
    _parse: RoomParse;
    Parse(): void;
    Undo: () => void;
    Redo: () => void;
}
export declare class Command_DrawWallInside implements Command {
    model: WallMode;
    _WallThickness: number;
    _WallHeight: number;
    _DrawDirMode: WallDirMode;
    exec(): Promise<void>;
    UpdatePoint(pl: Polyline, pt: Vector3, updateDraw?: boolean): void;
    RemoveLastVertex(pl: Polyline): void;
}
export declare function Polyline2Walls(pl: Polyline, dir: WallDirMode, thickness: number, height: number): RoomWallBase[];
//# sourceMappingURL=DrawWall.d.ts.map