import { GraphicNode } from "../node/GraphicNode";
import { IPoint, LineArrowType, NodeType } from "../../idl";
import { IDrawer } from "../IDrawer";
import { BorderProps } from "../props/BorderProps";
import { ArrowProps } from "../props/ArrowProps";
import { IRectNode, Point, Rect, RectNode } from "../../common";
import { LineProps } from "../props/LineProps";
import { AffineMatrix } from "../../math";
import { ConnectProps } from "../props/ConnectProps";
import { LineShapeType } from "../base/LineShapeType";
import { TextProps } from "../props/TextProps";
import { AbsProps } from "../props/AbsProps";
import { RenderText } from "../../renderText";
import { LineTextRectProps } from "../props/LineTextRectProps";
import { AbsArrowDrawer } from "./arrow/AbsArrowDrawer";
import { TextParagraphProps } from "../props/TextParagraphProps";
import { TextParagraphQuoteProps } from "../props/TextParagraphQuoteProps";
import { GraphicTextNode } from "../node/GraphicTextNode";
import { LineStatus } from "@/graphics/line/LineStatus";
import { IRectPoint } from "@/idl/common/IRectPoint";
export declare class OolongLine extends GraphicTextNode {
    type: NodeType;
    private static readonly ARROW_DIRECTION_MIN_SEGMENT;
    renderText: RenderText;
    inEditing: boolean;
    lineStatus: LineStatus | null;
    static arrowDrawerMap: Map<LineArrowType, AbsArrowDrawer>;
    static drawerMap: Map<LineShapeType, IDrawer>;
    rArrowMatrix: AffineMatrix;
    lArrowMatrix: AffineMatrix;
    get globalPos(): IPoint;
    get borderProps(): BorderProps;
    get textProps(): TextProps;
    get paragraphProps(): TextParagraphProps;
    get paragraphQuoteProps(): TextParagraphQuoteProps;
    get arrowProps(): ArrowProps;
    get shapeType(): LineShapeType;
    get lineProps(): LineProps;
    get globalLinePoints(): IPoint[];
    get connectProps(): ConnectProps;
    get points(): IPoint[];
    get lineTextRect(): LineTextRectProps;
    get drawer(): IDrawer | undefined;
    constructor(id: string, ctx: CanvasRenderingContext2D);
    loseFocus(): void;
    canBeConnected(): boolean;
    getStretchMinSize(): Point;
    drawWithTextClip(ctx: CanvasRenderingContext2D): void;
    drawCore(ctx: CanvasRenderingContext2D): void;
    drawOnGLCtx(ctx: CanvasRenderingContext2D): void;
    protected drawText(ctx: CanvasRenderingContext2D): void;
    isEmptyText(): boolean;
    updateProps(props: Partial<AbsProps>[]): void;
    getArrowDrawer(arrowType: LineArrowType): AbsArrowDrawer | null;
    private getBoundsPoints;
    private getTransformedArrowBoundsPoints;
    draw(): void;
    getBounds(): RectNode;
    getRectNode(): RectNode;
    toRectPoint(): IRectPoint;
    updateRArrowMatrix(): void;
    updateLArrowMatrix(): void;
    private getSegmentedLineArrowAngle;
    private getStartArrowDirectionSegment;
    private getEndArrowDirectionSegment;
    drawArrow(ctx: CanvasRenderingContext2D): void;
    getRArrowPoint(start: IPoint, end: IPoint, l?: number): {
        a: Point;
        b: Point;
    };
    basicGetArrowPoint(start: IPoint, end: IPoint, p1: IPoint, p2: IPoint): {
        a: Point;
        b: Point;
    };
    static load(id: string, type: NodeType, zIndex: number, props: Partial<AbsProps>[], parent: GraphicNode, ctx: CanvasRenderingContext2D): OolongLine;
    contains(point: Point, scale?: number): boolean;
    overlapRect(rect: IRectNode): boolean;
    getTextContentRect(): Rect;
    isPolyLine(): boolean;
    private isSegmentedLine;
    modifyPosInEditing(): boolean;
    resetFromEditing(): void;
    /**
     * 有箭头时需要对连线两端点进行修正
     */
    getDrawPoints(): IPoint[];
    getLineLength(): number;
}
//# sourceMappingURL=OolongLine.d.ts.map