import { Point } from './../../math/geometry/point';
import { IntersectionInfo } from './../../math/geometry/intersectionInfo';
import { ICurve } from './../../math/geometry/icurve';
import { EdgeGeometry } from './edgeGeometry';
import { GeomEdge } from './geomEdge';
export declare class Arrowhead {
    static defaultArrowheadLength: number;
    length: number;
    width: number;
    tipPosition: Point;
    clone(): Arrowhead;
    private static calculateArrowheads;
    static getIntersectionsWithArrowheadCircle(curve: ICurve, arrowheadLength: number, circleCenter: Point): IntersectionInfo[];
    static findTrimEndForArrowheadAtTarget(edgeGeometry: EdgeGeometry): number;
    static findTrimStartForArrowheadAtSource(edgeGeometry: EdgeGeometry): number;
    static trimSplineAndCalculateArrowheads(edge: GeomEdge, spline: ICurve, narrowestInterval: boolean): boolean;
    static trimSplineAndCalculateArrowheadsII(edgeGeometry: EdgeGeometry, sourceBoundary: ICurve, targetBoundary: ICurve, spline: ICurve, narrowestInterval: boolean): boolean;
    static createBigEnoughSpline(edge: GeomEdge): void;
    static createEdgeCurveWithNoTrimming(edge: GeomEdge, a: Point, b: Point): void;
}
