import * as Point from '../../../../geometry/src/point';
export type LineAnchorStyle = 'arrow-triangle' | 'arrow-line' | 'dot' | 'hash' | 'none';
export interface LineAnchorStylePoints {
    tip: Point.Point;
    base: Point.Point;
    arrowTriangle: ArrowheadPoints;
    arrowLine: ArrowheadPoints;
    hash: ArrowheadPoints;
    radius: number;
}
export interface ArrowheadPoints {
    leftPoint: Point.Point;
    rightPoint: Point.Point;
}
export interface LinePoints {
    x1: number;
    y1: number;
    x2: number;
    y2: number;
}
export interface CirclePoints {
    cx: number;
    cy: number;
    r: number;
}
export declare function createArrowheadPoints(start: Point.Point, end: Point.Point, arrowSideLength: number, arrowHeadTheta: number): ArrowheadPoints;
export declare function createLineAnchorStylePoints(start: Point.Point, end: Point.Point, triangleArrowAngle?: number, lineArrowAngle?: number): LineAnchorStylePoints;
export declare function arrowheadPointsToPolygonPoints(points: LineAnchorStylePoints, scale?: number): string;
export declare function arrowheadPointsToPathPoints(points: LineAnchorStylePoints, scale?: number): string;
export declare function arrowheadPointsToHashPoints(points: LineAnchorStylePoints, scale?: number): LinePoints;
export declare function arrowheadPointsToCirclePoints(points: LineAnchorStylePoints, scale?: number): CirclePoints;
export declare function isVertexViewerArrowMarkup(el: unknown): el is HTMLVertexViewerMarkupArrowElement;
export declare function parsePoint(value: string | Point.Point | undefined): Point.Point | undefined;
export declare function scalePointProportional(basePoint: Point.Point, scaledPoint: Point.Point, scale: number): Point.Point;
