import { Pen } from '../../pen';
import { Point } from '../../point';
import { Rect } from '../../rect';
import { Meta2dStore } from '../../store';
export declare function line(pen: Pen, ctx?: CanvasRenderingContext2D | Path2D): Path2D;
export declare function lineSegment(store: Meta2dStore, pen: Pen, mousedwon?: Point): void;
export declare function getLineRect(pen: Pen): Rect;
/**
 * 获取连线的 points ，并非 worldAnchors ，worldAnchors 之前的路径点也会记录
 */
export declare function getLinePoints(pen: Pen): Point[];
export declare function getLineR(pen: Pen): number;
export declare function getPoints(from: Point, to: Point, pen?: Pen): Point[];
export declare function pointInLine(pt: Point, pen: Pen): {
    i: number;
    point: Point;
};
export declare function pointInLineSegment(pt: Point, pt1: Point, pt2: Point, r?: number): {
    x: number;
    y: number;
};
export declare function pointToLine(pt: Point, pt1: Point, pt2: Point, r?: number): {
    x: number;
    y: number;
};
export declare function getLineLength(pen: Pen): number;
export declare function createLineSvgPath(line: Pen): SVGGeometryElement;
/**
 * 连线在 rect 内， 连线与 rect 相交
 */
export declare function lineInRect(line: Pen, rect: Rect): boolean;
/**
 * 线段与矩形是否相交
 * @param rect 矩形
 */
export declare function isLineIntersectRectangle(pt1: Point, pt2: Point, rect: Rect): boolean;
/**
 * 贝塞尔曲线与矩形是否相交
 * @param from 前点
 * @param to 后点
 * @param rect 矩形
 */
export declare function isBezierIntersectRectangle(from: Point, to: Point, rect: Rect): boolean;
export declare function createSvgPath(path: SVGGeometryElement, from: Point, cp1: Point, cp2?: Point, to?: Point): SVGGeometryElement;
export declare function getLinePointPosAndAngle(path: SVGGeometryElement, distance: number): {
    x: number;
    y: number;
    rotate: number;
    progress: number;
};
