import { ArrowBinding, ArrowPathType, BaseElement, Bounds, Direction, ElementType, ElementUtil, Point } from '../types'; export declare enum ArrowheadType { None = "none", Arrow = "arrow", OpenArrow = "open-arrow", Diamond = "diamond", OpenDiamond = "open-diamond", Circle = "circle", OpenCircle = "open-circle", Bar = "bar" } export interface ArrowheadConfig { type: ArrowheadType; } export declare const defaultStartHead: ArrowheadConfig; export declare const defaultEndHead: ArrowheadConfig; export interface ArrowElement extends BaseElement { type: ElementType.Arrow; x1: number; y1: number; x2: number; y2: number; startHead: ArrowheadConfig; endHead: ArrowheadConfig; startBinding: ArrowBinding | null; endBinding: ArrowBinding | null; pathType: ArrowPathType; } export declare class ArrowElementUtil implements ElementUtil { create(props: Partial): ArrowElement; resize(element: ArrowElement, direction: Direction, dx: number, dy: number): ArrowElement; getBounds(element: ArrowElement): Bounds; hitTest(element: ArrowElement, pointA: Point, pointB: Point, threshold: number): boolean; }