import { ILtrb, PointF, RotatedRectangleF } from "@aurigma/design-atoms-model/Math";
import { BaseRectangleItemHandler } from "../../ItemHandlers";
export interface ISelectionProcessModifier {
    /** Returns delta between startPoint and currentPoint */
    beforeMovePerformed(data: IMoveData): PointF;
    /** Returns target rectangle */
    beforeResizePerformed(data: IResizeData): RotatedRectangleF;
    /** Returns target rectangle */
    beforeRotatePerformed(data: IRotateData): RotatedRectangleF;
}
export interface IMoveData {
    /** Point of mousedown or touchstart in workspace coordinates */
    startPoint: PointF;
    /** Delta between startPoint and currentPoint */
    delta: PointF;
    /** Delta between currentPoint and previousPoint */
    momentDelta: PointF;
    /** Rectangle state when move was started */
    startRectangle?: RotatedRectangleF;
    border?: ILtrb;
}
export interface IItemHandlerRectData {
    itemType: string;
    startRectangle: RotatedRectangleF;
}
export interface IResizeData {
    /** Current rectangle state */
    currentRect: RotatedRectangleF;
    /** Rectangle state when resize was started */
    startRectangle: RotatedRectangleF;
    /** Previous rectangle state */
    previousRectangle: RotatedRectangleF;
    /** Availability of arbitrary resize */
    arbitraryResize: boolean;
    /** Index of grips is being resized now */
    resizeIndex: number;
    startItemHandlersRects: IItemHandlerRectData[];
    rectangleItemHandlers?: BaseRectangleItemHandler[];
}
export interface IRotateData {
    /** Current rectangle state */
    currentRect: RotatedRectangleF;
    /** Previous rectangle state */
    previousRectangle: RotatedRectangleF;
}
