import { Vector3 } from "three";
import { Entity } from "../DatabaseServices/Entity/Entity";
import { ObjectId } from "../DatabaseServices/ObjectId";
import { ViewportEntity } from "../DatabaseServices/ViewportEntity";
import { Command } from "../Editor/CommandMachine";
import { RenderType } from "../GraphicsSystem/RenderType";
import { ViewDirection } from "../UI/Store/OptionInterface/OptionEnum";
export declare class DrawViewport implements Command {
    exec(): Promise<void>;
}
export declare class Draw4Viewport implements Command {
    exec(): Promise<void>;
}
/**
 * 除了孔外的id和门板和非门板。
 * hideEntitys 用来判断可见的把手是不是跟它们有关系，隐藏门板或者隐藏抽屉时把手一起隐藏
 * @param ens
 * @returns  ids//不含孔的所有实体, doorIds//门板, dimIds//标注 ,drawerIds//抽屉 }
 */
export declare function GetEntityIds(ens: Entity[], hideEntitys?: Entity[]): {
    ids: ObjectId<import("../ueapi").CADObject>[];
    doorIds: ObjectId<import("../ueapi").CADObject>[];
    dimIds: ObjectId<import("../ueapi").CADObject>[];
    curveIds: ObjectId<import("../ueapi").CADObject>[];
    drawerIds: ObjectId<import("../ueapi").CADObject>[];
    modelIds: ObjectId<import("../ueapi").CADObject>[];
};
export declare function Get4Viewport(p1: Vector3, p2: Vector3, ens: Entity[], directionInfos: ViewDirection[], renderType: RenderType[], isHideDoor: boolean, isRevertRotate: boolean, hideEntitys?: Entity[]): ViewportEntity[];
export declare class Draw2Viewport implements Command {
    exec(): Promise<void>;
}
export declare class Draw3Viewport implements Command {
    exec(): Promise<void>;
}
export interface ICustomViewportInfo {
    renderType: RenderType;
    dir: Vector3;
    width: number;
    height: number;
    position: Vector3;
    hideTypes: string[];
    hideLayer: Set<string>;
    showLayer: Set<string>;
}
export declare function DrawCustomViewports(infos: ICustomViewportInfo[], ens: Entity[], hideEntitys: Entity[], isRevertRotate: boolean): ViewportEntity[];
//# sourceMappingURL=DrawViewport.d.ts.map