import { Dimensions, Point, Rectangle } from '@vertexvis/geometry';
import { MarkupCenteringBehavior } from '../../lib/types';
export type BoundingBox2dAnchorPosition = 'left' | 'right' | 'top' | 'bottom' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'center';
export declare function getBoundingBox2dAnchorPosition(rect: Rectangle.Rectangle, position: BoundingBox2dAnchorPosition): Point.Point;
export declare function translatePointToScreen(pt: Point.Point, canvasDimensions: Dimensions.Dimensions, contentDimensions?: Dimensions.Dimensions, centeringBehavior?: MarkupCenteringBehavior, scale?: number): Point.Point;
export declare function translatePointToBounds(pt: Point.Point, rect: Rectangle.Rectangle, canvasDimensions: Dimensions.Dimensions): Point.Point;
export declare function translateDimensionsToScreen(dimensions: Dimensions.Dimensions, canvasDimensions: Dimensions.Dimensions, contentDimensions?: Dimensions.Dimensions, scale?: number): Dimensions.Dimensions;
/**
 * Translates a rectangle in relative units, to a rectangle in screen units.
 *
 * Shape coordinates are persisted in relative units, so they can be presented
 * at any size.
 */
export declare function translateRectToScreen(rect: Rectangle.Rectangle, canvasDimensions: Dimensions.Dimensions, contentDimensions?: Dimensions.Dimensions, centeringBehavior?: MarkupCenteringBehavior, scale?: number): Rectangle.Rectangle;
/**
 * Translates a point in screen units, to a point in relative units.
 */
export declare function translatePointToRelative(pt: Point.Point, canvasDimensions: Dimensions.Dimensions, contentDimensions?: Dimensions.Dimensions, centeringBehavior?: MarkupCenteringBehavior, scale?: number, offset?: Point.Point): Point.Point;
/**
 * Translates a set of points in relative `original` units to
 * points in relative `bounds` units.
 */
export declare function translatePointsToBounds(points: Point.Point[], original: Rectangle.Rectangle, bounds: Rectangle.Rectangle): Point.Point[];
export declare function createRectangle(initialPoint: Point.Point, currentPoint: Point.Point, maintainAspectRatio: boolean): Rectangle.Rectangle;
export declare function transformRectangle(bounds: Rectangle.Rectangle, start: Point.Point, current: Point.Point, anchor: BoundingBox2dAnchorPosition, maintainAspectRatio?: boolean): Rectangle.Rectangle;
export declare function isVertexViewerMarkupElement(el: HTMLElement): el is HTMLVertexViewerMarkupArrowElement | HTMLVertexViewerMarkupCircleElement | HTMLVertexViewerMarkupFreeformElement;
export declare function isValidPointData(...points: Point.Point[]): boolean;
export declare function isValidStartEvent(event: PointerEvent): boolean;
