import { DRAWINGINFO, POSITIONINFO } from '../types/cutBox';
import { CUTBOXINFO, JUDGERESULT } from '../types/index';
declare class drawCutBox {
    dom: HTMLElement;
    drawWidth: number;
    drawHeight: number;
    callback: Function;
    drawingInfo: DRAWINGINFO;
    positionInfo: POSITIONINFO;
    handleMouseDown: Function;
    handleMouseMove: Function;
    handleMouseUp: Function;
    constructor(dom: HTMLElement, drawWidth: number, drawHeight: number, callback: Function);
    drawing(): void;
    destroy(): void;
    mouseDownEvent(e: MouseEvent): void;
    mouseMoveEvent(e: MouseEvent): void;
    mouseUpEvent(): void;
    /**
     * @func 绘制裁剪框
     * @desc
     * @param {
     *   ctx, 执行上下文
     *   cutBoxInfo 剪裁框信息
     *   isPoints  是否需要绘制八个点位
     * }
     * @return {}
     */
    drawCutOutBox(ctx: CanvasRenderingContext2D, cutBoxInfo: CUTBOXINFO, isPoints?: boolean): void;
    drawShadowMask(ctx: CanvasRenderingContext2D, cutBoxInfo: CUTBOXINFO): void;
    setOptions(ctx: CanvasRenderingContext2D): void;
    drawImageSize(ctx: CanvasRenderingContext2D, cutBoxInfo: CUTBOXINFO): void;
    getBorderPointsPlace(x: number, y: number, width: number, height: number, size: number): Array<Array<number>>;
    /**
     * @func  判断剪裁框操作方法：移动
     * @desc  注意：由于是外层使用，需要指定当前的this,否则this指向存在问题
     *        判断是否在边缘线上，采用模糊距离，提高体验
     * @param {}
     * @return {
     *  判断成功后,返回对应的mouse移动事件处理方法、鼠标状态或 抑或是其他信息
     *  其中返回函数支持参数依次为
     *  positionList  图形操作之前、已经转为像素的点位或路径信息
     *  offsetX   x方向、 鼠标移动偏移大小
     *  offsetY  y方向、 鼠标移动偏移大小
     * }
     */
    judgeOperate(positionInfo: POSITIONINFO, mouseX: number, mouseY: number): JUDGERESULT | undefined;
    checkIsRectInside(mouseX: number, mouseY: number, x: number, y: number, width: number, height: number): boolean;
    handleNewData(newPosition: POSITIONINFO): POSITIONINFO;
}
export default drawCutBox;
