import type { PointerEventState } from '@blockeditor/block-std';
import type { EdgelessTool, ShapeTool } from '../../../../_common/utils/index.js';
import type { SelectionArea } from '../../services/tools-manager.js';
import { EdgelessToolController } from './index.js';
export declare class ShapeToolController extends EdgelessToolController<ShapeTool> {
    readonly tool: ShapeTool;
    private _draggingElement;
    private _draggingElementId;
    private _shapeOverlay;
    protected _draggingArea: SelectionArea | null;
    private _addNewShape;
    onContainerClick(e: PointerEventState): void;
    onContainerContextMenu(): void;
    onContainerPointerDown(): void;
    onContainerDblClick(): void;
    onContainerTripleClick(): void;
    onContainerDragStart(e: PointerEventState): void;
    onContainerDragMove(e: PointerEventState): void;
    onContainerDragEnd(): void;
    onPressShiftKey(pressed: boolean): void;
    private _resize;
    private _updateOverlayPosition;
    clearOverlay(): void;
    private _hideOverlay;
    onContainerMouseMove(e: PointerEventState): void;
    onContainerMouseOut(e: PointerEventState): void;
    beforeModeSwitch(): void;
    afterModeSwitch(newTool: EdgelessTool): void;
    createOverlay(): void;
}
//# sourceMappingURL=shape-tool.d.ts.map