import { LinePosition, Position } from '../../common/types'; import { Vector2D } from '../vector2d'; export declare class VectorLine { source: Vector2D; target: Vector2D; v: Vector2D; constructor(source: Vector2D, target: Vector2D, v: Vector2D); static fromLinePosition(line: LinePosition): VectorLine; static fromPositions(sourcePos: Position, targetPos: Position): VectorLine; static fromVectors(source: Vector2D, target: Vector2D): VectorLine; } export declare function toLineVector(source: Vector2D, target: Vector2D): Vector2D; export declare function toVectorsFromLinePosition(line: LinePosition): [Vector2D, Vector2D]; export declare function getCenterOfLinePosition(line: LinePosition): Vector2D; /** * Convert two `Position` to `LinePosition` * @param p1 source position of the line * @param p2 target position of the line * @returns `LinePosition` instance */ export declare function toLinePosition(p1: Position, p2: Position): LinePosition; /** * Calculates the line position to which the margin is applied. * @param linePos original position of the line * @param sourceMargin margin for source side * @param targetMargin margin for target side * @returns the line position */ export declare function applyMargin(linePos: LinePosition, sourceMargin: number, targetMargin: number): LinePosition; export declare function inverseLine(line: LinePosition): LinePosition; export declare function calculatePerpendicularLine(line: VectorLine): VectorLine;