import type { IPoint } from '../../../../_common/types.js';
import { Bound } from '../../../../surface-block/index.js';
import { HandleDirection, type ResizeMode } from './resize-handles.js';
type DragStartHandler = () => void;
type DragEndHandler = () => void;
type ResizeMoveHandler = (bounds: Map<string, {
    bound: Bound;
}>, direction: HandleDirection) => void;
type RotateMoveHandler = (point: IPoint, rotate: number) => void;
export declare class HandleResizeManager {
    private _onDragStart;
    private _onResizeMove;
    private _onRotateMove;
    private _onDragEnd;
    private _dragDirection;
    private _dragPos;
    private _rotate;
    /**
     * Record inital rect of selected elements
     */
    private _originalRect;
    /**
     * Current rect of selected elements, it may change during resizing or moving
     */
    private _currentRect;
    private _origin;
    private _resizeMode;
    private _zoom;
    private _bounds;
    private _aspectRatio;
    private _locked;
    private _proportion;
    private _shiftKey;
    private _proportional;
    private _rotation;
    private _target;
    private _dragging;
    constructor(onDragStart: DragStartHandler, onResizeMove: ResizeMoveHandler, onRotateMove: RotateMoveHandler, onDragEnd: DragEndHandler);
    get dragging(): boolean;
    get rotation(): boolean;
    get currentRect(): DOMRect;
    get originalRect(): DOMRect;
    get bounds(): Map<string, {
        bound: Bound;
        rotate: number;
    }>;
    updateState(resizeMode: ResizeMode, rotate: number, zoom: number, position?: {
        x: number;
        y: number;
    }, originalRect?: DOMRect, proportion?: boolean): void;
    updateRectPosition(delta: {
        x: number;
        y: number;
    }): DOMRect;
    updateBounds(bounds: Map<string, {
        bound: Bound;
        rotate: number;
    }>): void;
    private _onResize;
    private _onRotate;
    onPointerDown: (e: PointerEvent, direction: HandleDirection, proportional?: boolean) => void;
    onPressShiftKey(pressed: boolean): void;
}
export {};
//# sourceMappingURL=resize-manager.d.ts.map