import { Matrix3, Matrix4, Object3D, Vector3 } from 'three';
import { FontType } from '../../Add-on/TextStyle/FontStyleInterface';
import { ObjectSnapMode } from '../../Editor/ObjectSnapMode';
import { Box3Ext } from '../../Geometry/Box';
import { RenderType } from '../../GraphicsSystem/RenderType';
import { CADFiler } from '../CADFiler';
import { Entity } from '../Entity/Entity';
import { FontStyleKeyCode } from '../FontStyle/FontStyleKeyCodeEnum';
import { ObjectId } from '../ObjectId';
export declare const TEXT_HEIGHT_SCALE = 1.35;
export declare enum TextAligen {
    LeftTop = 3,
    Top = 1,
    RightTop = 5,
    LeftMid = 2,
    Mid = 0,
    RightMid = 4,
    LeftDown = 10,
    Down = 8,
    RightDown = 12
}
export declare const LineHeightScaleMap: {
    yahei: number;
    songti: number;
    KaiTi: number;
    FangSong: number;
    LiShu: number;
    HeiTi: number;
    HuaWenLiShu: number;
    HuaWenXingKai: number;
};
export declare function DisposeTextShapeCache(): void;
/**
 * 单/多行文字实体
 */
export declare class Text extends Entity {
    private _TextString;
    private _TextRotation;
    static DrawGeomCurveSegmentsCount: number;
    protected OnlyRenderType: boolean;
    protected _FontStyle: ObjectId;
    protected _FontStyleOverride: Map<FontStyleKeyCode, any>;
    protected _RoomName: string;
    protected _CabinetName: string;
    private _Align;
    private _IsDoubleMesh;
    IsFsText: boolean;
    constructor(pos?: Vector3, _TextString?: string, _TextRotation?: number, fontName?: FontType, widthFactor?: number);
    get IsDoubleMesh(): boolean;
    set IsDoubleMesh(value: boolean);
    get RoomName(): string;
    set RoomName(value: string);
    get CabinetName(): string;
    set CabinetName(value: string);
    get TextRotation(): number;
    set TextRotation(v: number);
    get TextString(): string;
    set TextString(str: string);
    set TextAligen(al: TextAligen);
    get TextAligen(): TextAligen;
    /**设置字体样式 */
    set FontStyle(styleId: ObjectId);
    /**大概多行文字的高度 */
    get MultiHeight(): number;
    get FontStyle(): ObjectId;
    get FontName(): FontType;
    set FontName(fontName: FontType);
    get Height(): number;
    set Height(value: number);
    get WidthFactor(): number;
    set WidthFactor(value: number);
    get FontStyleOverride(): Map<FontStyleKeyCode, any>;
    GetFontStyleOverrideValue(key: FontStyleKeyCode): any;
    GetFontStyleValue(key: FontStyleKeyCode): any;
    SetFontStyleOverrideValue(key: FontStyleKeyCode, value: any): void;
    ClearFontStyleOverride(): void;
    AsyncUpdateDrawObject(obj: Object3D, renderType: RenderType): Promise<void>;
    /**大概宽度 */
    GetStringCount(): number;
    get Width(): number;
    get HasBoundingBox(): boolean;
    get BoundingBox(): Box3Ext | import("three").Box3;
    get BoundingBoxInOCS(): Box3Ext;
    UpdateTranslate(): void;
    private UpdateObjectTranslate;
    ApplyMatrix(m: Matrix4): this;
    protected ApplyScaleMatrix(m: Matrix4): this;
    InitDrawObject(renderType?: RenderType): Object3D;
    UpdateDrawObject(type: RenderType, obj: Object3D): void;
    UpdateDrawObjectMaterial(renderType: RenderType, en: Object3D): void;
    GetGripPoints(): Array<Vector3>;
    MoveGripPoints(indexList: number[], vec: Vector3): void;
    GetObjectSnapPoints(snapMode: ObjectSnapMode, pickPoint: Vector3, lastPoint: Vector3, viewXform?: Matrix3): Vector3[];
    GetStretchPoints(): Array<Vector3>;
    MoveStretchPoints(indexList: Array<number>, vec: Vector3): void;
    protected ReadFontStyle(file: CADFiler): void;
    protected WriteFontStyle(file: CADFiler): void;
    protected _ReadFile(file: CADFiler): void;
    WriteFile(file: CADFiler): void;
}
export declare const DbText: typeof Text;
//# sourceMappingURL=Text.d.ts.map