import { TEXTPOSITIONINFO, TEXTRENDERINFO, OPTION, CUTBOXINFO, TEXTCONFIG, TEXTLINECONFIG, JUDGERESULT } from '../types/index';
/**
 * @func 绘制文本
 * @desc dom渲染文本比 canvas渲染文本 ，多出padding大小的差距
 * @param {}
 * @return {}
 */
declare class drawText {
    dpr: number;
    padding: number;
    letterSpacing: number;
    baseFontSize: number;
    minWidth: number;
    showTextDom: HTMLElement | null;
    cutBoxInfo: CUTBOXINFO;
    ctx: CanvasRenderingContext2D | null;
    opearteInfo: TEXTRENDERINFO | null;
    constructor();
    /**
     * @func 向外层提供可以初始化数据的函数
     * @desc
     * @param {
     *   ctx 执行上下文
     *   cutBoxInfo 剪裁框信息
     *   isHaveEdit 当前绘制所有文本中是否存在需要编辑的文本
     * }
     * @return {}
     */
    initData(ctx: CanvasRenderingContext2D, cutBoxInfo: CUTBOXINFO, isHaveEdit?: boolean): void;
    /**
     * @func 绘制文本
     * @desc
     * @param {
     *  ctx 执行上下文
     *  info 文本信息
     * }
     * @return {}
     */
    draw(ctx: CanvasRenderingContext2D, info: TEXTRENDERINFO): Path2D;
    calcFontSize(baseFontSize: number, size: number): number;
    setOptions(ctx: CanvasRenderingContext2D, option: OPTION, isEdit: boolean): void;
    renderWrapText(ctx: CanvasRenderingContext2D, renderTextList: Array<TEXTCONFIG>): void;
    /**
     * @func 绘制辅助点位，用于展示图形选中状态,同时支持文本编辑
     * @desc
     * @param {}
     * @return {}
     */
    drawAuxiliaryDom(positionInfo: TEXTPOSITIONINFO, cutBoxInfo: CUTBOXINFO): void;
    getTextConfig(context: CanvasRenderingContext2D, positionInfo: TEXTPOSITIONINFO, fontSize: number): TEXTLINECONFIG;
    drawTextLedge(ctx: Path2D, start: Array<number>, width: number, height: number): void;
    createTextDom(ctx: CanvasRenderingContext2D): void;
    addListener(): void;
    /**
     * @func  判断文本操作方法：移动
     * @desc 注意：由于是外层使用，需要指定当前的this,否则this指向存在问题
     * @param {}
     * @return {
     *  判断成功后,返回对应的mouse移动事件处理方法、鼠标状态或 抑或是其他信息
     *  其中返回函数支持参数依次为
     *  startPoistion  图形操作之前、已经转为像素的点位或路径信息
     *  offsetX   x方向、 鼠标移动偏移大小
     *  offsetY  y方向、 鼠标移动偏移大小
     * }
     */
    judgeOperate(info: TEXTRENDERINFO, ctx: CanvasRenderingContext2D, x: number, y: number): JUDGERESULT | undefined;
    /**
     * @func 处理文本移动后的位置限制,保存文本移动处于整个剪裁框内
     * @desc 移动过程中需要将文本原来的宽高作为最大的宽高度
     * @param {}
     * @return {}
     */
    handleNewData(positionInfo: TEXTPOSITIONINFO): TEXTPOSITIONINFO;
    destroy(): void;
}
declare const _default: drawText;
export default _default;
