import { Text, Rect, Circle, Diamond } from "./node/index"; import Stage from "./stage"; declare type Node = Rect | Circle | Diamond | Text; export declare type Position = 'top' | 'right' | 'bottom' | 'left'; interface Point { x: number; y: number; } declare class Line { node: Node; toNode: Node; p1: Point; p2: Point; type: string; arrow: boolean; constructor(node: Node, startPosition: Position, toNode: Node, endPosition: Position, space: number); getPointOffset(orient: string, node: Node, space: number): Point; } export default class Liner { stage2d: Stage; list: Array; cached: boolean; space: number; headlen: number; theta: number; context: CanvasRenderingContext2D; canvas: HTMLCanvasElement; constructor(stage2d: Stage); addLine(node: Node, startPosition: Position, toNode: Node, endPosition: Position): Line; paint(context: CanvasRenderingContext2D): void; paintLine(context: CanvasRenderingContext2D, line: Line): void; paintBezierLine(context: CanvasRenderingContext2D, orient: string, node: Node, toNode: Node): void; paintBrokenLine(context: CanvasRenderingContext2D, line: Line): void; paintLineArrow(context: CanvasRenderingContext2D, fromX: number, fromY: number, toX: number, toY: number): void; clearLine(): void; clearCache(): void; } export {};