import { BaseTool } from '@cornerstonejs/tools';
import type { Types as coreTypes } from '@cornerstonejs/core';
import type { Types as toolsTypes } from '@cornerstonejs/tools';
/**
 * @description
 * @author jiannan.jiao
 * @date 01/08/2023
 * @class AdvanceBrushTool
 * @extends {BaseTool}
 */
declare class AdvanceBrushTool extends BaseTool {
    static toolName: string;
    private _editData;
    private _hoverData?;
    private _bindMouseleave;
    private _prevMousePosition;
    private _oper;
    constructor(toolProps?: toolsTypes.PublicToolProps, defaultToolProps?: toolsTypes.ToolProps);
    onSetToolPassive: () => void;
    onSetToolEnabled: () => void;
    onSetToolDisabled: () => void;
    private disableCursor;
    /**
     * @description
     * @author jiannan.jiao
     * @date 01/08/2023
     * @param {toolsTypes.EventTypes.MouseDownActivateEventType} evt
     * @memberof BrushTool
     */
    preMouseDownCallback: (evt: toolsTypes.EventTypes.MouseDownActivateEventType) => boolean;
    mouseMoveCallback: (evt: toolsTypes.EventTypes.InteractionEventType) => void;
    /**
     * @description 绑定mouseleave事件，在未勾画时鼠标移出视口隐藏笔刷
     * @author jiannan.jiao
     * @date 01/08/2023
     * @private
     * @param {HTMLDivElement} element
     * @memberof BrushTool
     */
    private bindMouseleave;
    /**
     * @description
     * @author jiannan.jiao
     * @date 01/08/2023
     * @private
     * @param {toolsTypes.EventTypes.InteractionEventType} evt
     * @memberof BrushTool
     */
    private updateCursor;
    /**
     * @description
     * @author jiannan.jiao
     * @date 01/08/2023
     * @private
     * @param {toolsTypes.EventTypes.InteractionEventType} evt
     * @memberof BrushTool
     */
    private _dragCallback;
    /**
     * @description
     * @author jiannan.jiao
     * @date 01/08/2023
     * @private
     * @param {HTMLDivElement} element
     * @param {coreTypes.Point2} centerCanvas Center of circle in canvas Coordinates
     * @memberof BrushTool
     */
    private _calculateCursor;
    /**
     * @description
     * @author jiannan.jiao
     * @date 01/08/2023
     * @private
     * @param {toolsTypes.EventTypes.InteractionEventType} evt
     * @memberof BrushTool
     */
    private _endCallback;
    /**
     * @description Add event handlers for the modify event loop, and prevent default event propagation.
     * @author jiannan.jiao
     * @date 01/08/2023
     * @private
     * @param {HTMLDivElement} element
     * @memberof BrushTool
     */
    private _activateDraw;
    /**
     * @description Add event handlers for the modify event loop, and prevent default event prapogation.
     * @author jiannan.jiao
     * @date 01/08/2023
     * @private
     * @param {HTMLDivElement} element
     * @memberof BrushTool
     */
    private _deactivateDraw;
    /**
     * @description
     * @author jiannan.jiao
     * @date 01/08/2023
     * @memberof BrushTool
     */
    invalidateBrushCursor(): void;
    /**
     * @description
     * @author jiannan.jiao
     * @date 01/08/2023
     * @param {coreTypes.IEnabledElement} enabledElement
     * @param {toolsTypes.SVGDrawingHelper} svgDrawingHelper
     * @memberof BrushTool
     */
    renderAnnotation(enabledElement: coreTypes.IEnabledElement, svgDrawingHelper: toolsTypes.SVGDrawingHelper): void;
}
export default AdvanceBrushTool;
