import { Line, LineBasicMaterial, Mesh, ShapeGeometry } from "three";
import { ArrowType } from "../../Common/SystemEnum";
import { RenderType } from "../../GraphicsSystem/RenderType";
import { CADFiler } from "../CADFiler";
import { DimStyleKeyCode } from "../DimStyle/DimstyleKeyCodeEnum";
import { Entity } from "../Entity/Entity";
import { ObjectId } from "../ObjectId";
import { PhysicalMaterialRecord } from "../PhysicalMaterialRecord";
import { Text } from "../Text/Text";
import { EntityDimRelativeInfo } from "./EntityDimRelativeInfo";
export declare abstract class Dimension extends Entity {
    OnlyRenderType: boolean;
    protected _TextString: string;
    protected _Text: Text;
    get Material(): ObjectId<PhysicalMaterialRecord>;
    set Material(materialId: ObjectId<PhysicalMaterialRecord>);
    protected _DimStyle: ObjectId;
    protected _DimStyleOverride: Map<DimStyleKeyCode, any>;
    protected _RoomName: string;
    protected _CabinetName: string;
    protected _EntityDimRelativeInfo: EntityDimRelativeInfo[];
    get EntityDimRelativeInfo(): EntityDimRelativeInfo[];
    set EntityDimRelativeInfo(values: EntityDimRelativeInfo[]);
    GetDimStyleOverrideValue(key: DimStyleKeyCode): any;
    SetDimStyleOverrideValue(key: DimStyleKeyCode, value: any): void;
    SetDimStyleOverrideValues(valueMap: Map<DimStyleKeyCode, any>): void;
    DeleteDimStyleOverrideValue(key: DimStyleKeyCode): void;
    ClearDimStyleOverride(): void;
    GetDimStyleValue(key: DimStyleKeyCode): any;
    get DimStyle(): ObjectId;
    /**设置标注样式 */
    set DimStyle(styleId: ObjectId);
    set TextString(txt: string);
    get TextString(): string;
    /**计算文字盒子占用的宽度 */
    get TextBoxWidth(): number;
    get TextSize(): number;
    set TextSize(size: number);
    get FractionDigits(): number;
    set FractionDigits(length: number);
    get ArrowStyle(): ArrowType;
    set ArrowStyle(arrowStyle: ArrowType);
    get RoomName(): string;
    set RoomName(value: string);
    get CabinetName(): string;
    set CabinetName(value: string);
    ClearDraw(): this;
    /**未被修改过的 原始显示字符串,供内部使用 实际文字需要使用.TextString */
    protected abstract GetPrimitiveString(): string;
    protected ReadDimStyle(file: CADFiler): void;
    protected WriteDimStyle(file: CADFiler): void;
    protected ReadRoomAndCabinetName(file: CADFiler): void;
    protected WriteRoomAndCabinetName(file: CADFiler): void;
    /** 获取箭头模型 */
    protected GetArrowObject(renderType: RenderType): (Mesh<ShapeGeometry, LineBasicMaterial> | Line<ShapeGeometry, LineBasicMaterial>)[];
    ReadEntityDimRelativeInfo(file: CADFiler): void;
    WriteEntityDimRelativeInfo(file: CADFiler): void;
}
//# sourceMappingURL=Dimension.d.ts.map