import { Point, Rectangle } from '@vertexvis/geometry';
import { LineAnchorStyle } from '../../components/viewer-markup-arrow/utils';
export interface MarkupInteraction {
    markup: HTMLVertexViewerMarkupArrowElement | HTMLVertexViewerMarkupCircleElement | HTMLVertexViewerMarkupFreeformElement;
    newlyCreatedMarkup: boolean;
}
export interface ArrowMarkupInit {
    start?: Point.Point;
    end?: Point.Point;
    id?: string;
    startLineAnchorStyle?: LineAnchorStyle;
    endLineAnchorStyle?: LineAnchorStyle;
}
export declare class ArrowMarkup {
    readonly start: Point.Point;
    readonly end: Point.Point;
    readonly id: string;
    readonly startLineAnchorStyle: LineAnchorStyle;
    readonly endLineAnchorStyle: LineAnchorStyle;
    constructor(init: ArrowMarkupInit);
}
export interface CircleMarkupInit {
    bounds?: Rectangle.Rectangle;
    id?: string;
}
export declare class CircleMarkup {
    readonly bounds: Rectangle.Rectangle;
    readonly id: string;
    constructor(init: CircleMarkupInit);
}
export interface FreeformMarkupInit {
    bounds?: Rectangle.Rectangle;
    points?: Point.Point[];
    id?: string;
}
export declare class FreeformMarkup {
    readonly bounds: Rectangle.Rectangle;
    readonly points: Point.Point[];
    readonly id: string;
    constructor(init: FreeformMarkupInit);
}
export type Markup = ArrowMarkup | CircleMarkup | FreeformMarkup;
export type MarkupCenteringBehavior = 'x-only' | 'y-only' | 'both' | 'none';
