import { RelationShipDetail } from './ModelStore';
import { Point } from './Point';
import { Rect } from './Rect';
import { Vector } from './Vector';
export declare class Line {
    readonly relation: RelationShipDetail;
    readonly inverseRelation?: RelationShipDetail | undefined;
    readonly className?: string | undefined;
    readonly onClick?: ((event: MouseEvent) => void) | undefined;
    svg: SVGSVGElement;
    startpont: SVGCircleElement;
    endpont: SVGPolygonElement | SVGCircleElement;
    linePath: SVGPathElement;
    maskLinePath: SVGPathElement;
    startText: SVGGElement;
    endText: SVGGElement;
    start: Point;
    startDir: Vector;
    end: Point;
    endDir: Vector;
    constructor(relation: RelationShipDetail, inverseRelation?: RelationShipDetail | undefined, className?: string | undefined, onClick?: ((event: MouseEvent) => void) | undefined);
    static getRelativeRect(el: HTMLElement, container: HTMLElement): Rect;
    init(): void;
    draw(container: HTMLDivElement): void;
    private drawLine;
    private drawStartPoint;
    private drawEndPoint;
    private drawText;
    setActive(value: boolean): void;
    onDiagramViewModeChange(mode: 'more' | 'less'): void;
    dispose(): void;
}
