import { Dom, type KeyValue } from '../../common'; import { Line, Path, Point, type PointLike, Rectangle } from '../../geometry'; import type { OnEdgeLabelRenderedArgs } from '../../graph/options'; import { Edge, type EdgeSetOptions, type LabelPosition, type LabelPositionObject, type LabelPositionOptions, type TerminalCellData, type TerminalData, type TerminalType } from '../../model/edge'; import { type ConnectionPointManualItem, type NodeAnchorManualItem } from '../../registry'; import { CellView } from '../cell'; import type { MarkupJSONMarkup, MarkupSelectors, MarkupType } from '../markup'; import type { EdgeViewMouseEventArgs, EdgeViewOptions, EdgeViewPositionEventArgs, EventDataArrowheadDragging, EventDataValidateConnectionArgs } from './type'; export * from './type'; export declare class EdgeView extends CellView { protected readonly POINT_ROUNDING = 2; path: Path; routePoints: Point[]; sourceAnchor: Point; targetAnchor: Point; sourcePoint: Point; targetPoint: Point; sourceMarkerPoint: Point; targetMarkerPoint: Point; sourceView: CellView | null; targetView: CellView | null; sourceMagnet: Element | null; targetMagnet: Element | null; protected labelContainer: Element | null; protected labelCache: { [index: number]: Element; }; protected labelSelectors: { [index: number]: MarkupSelectors; }; protected labelDestroyFn: { [index: number]: (args: OnEdgeLabelRenderedArgs) => void; }; static isEdgeView(instance: any): instance is EdgeView; protected get [Symbol.toStringTag](): string; protected getContainerClassName(): string; get sourceBBox(): Rectangle; get targetBBox(): Rectangle; isEdgeView(): this is EdgeView; confirmUpdate(flag: number, options?: any): number; render(): this; protected renderMarkup(): void; protected renderJSONMarkup(markup: MarkupJSONMarkup | MarkupJSONMarkup[]): void; protected customizeLabels(): void; protected destroyCustomizeLabels(): void; protected renderLabels(): this; onLabelsChange(options?: any): void; protected shouldRerenderLabels(options?: any): boolean; protected parseLabelMarkup(markup?: MarkupType): { fragment: DocumentFragment; selectors: {}; }; protected parseLabelStringMarkup(labelMarkup: string): { fragment: DocumentFragment; selectors: {}; }; protected normalizeLabelMarkup(markup?: { fragment: DocumentFragment; selectors: MarkupSelectors; } | null): { node: SVGElement; selectors: MarkupSelectors; }; protected updateLabels(): void; protected renderTools(): this; update(options?: any): this; removeRedundantLinearVertices(options?: EdgeSetOptions): number; getTerminalView(type: TerminalType): CellView, import("../cell").CellViewOptions>; getTerminalAnchor(type: TerminalType): Point; getTerminalConnectionPoint(type: TerminalType): Point; getTerminalMagnet(type: TerminalType, options?: { raw?: boolean; }): Element; updateConnection(options?: any): void; protected findAnchors(vertices: PointLike[]): { [x: string]: Point; }; protected findAnchorsOrdered(firstType: TerminalType, firstPoint: PointLike, secondType: TerminalType, secondPoint: PointLike): { [x: string]: Point; }; protected getAnchor(def: NodeAnchorManualItem | string | undefined, cellView: CellView, magnet: Element | null, ref: Point | Element | null, terminalType: TerminalType): Point; protected findRoutePoints(vertices?: PointLike[]): Point[]; protected findConnectionPoints(routePoints: Point[], sourceAnchor: Point, targetAnchor: Point): { source: Point; target: Point; }; protected getConnectionPoint(def: string | ConnectionPointManualItem | undefined, view: CellView, magnet: Element, line: Line, endType: TerminalType): Point; protected findMarkerPoints(routePoints: Point[], sourcePoint: Point, targetPoint: Point): { source: Point; target: Point; }; protected findPath(routePoints: Point[], sourcePoint: Point, targetPoint: Point): Path; protected translateConnectionPoints(tx: number, ty: number): void; updateLabelPositions(): this; updateTerminalProperties(type: TerminalType): boolean; updateTerminalMagnet(type: TerminalType): void; protected getLabelPositionAngle(idx: number): number; protected getLabelPositionArgs(idx: number): LabelPositionOptions; protected getDefaultLabelPositionArgs(): LabelPositionOptions; protected mergeLabelPositionArgs(labelPositionArgs?: LabelPositionOptions, defaultLabelPositionArgs?: LabelPositionOptions): LabelPositionOptions; getConnection(): Path; getConnectionPathData(): string; getConnectionSubdivisions(): import("../../geometry").Segment[][]; getConnectionLength(): number; getPointAtLength(length: number): any; getPointAtRatio(ratio: number): any; getTangentAtLength(length: number): any; getTangentAtRatio(ratio: number): any; getClosestPoint(point: PointLike): Point; getClosestPointLength(point: PointLike): number; getClosestPointRatio(point: PointLike): number; getLabelPosition(x: number, y: number, options?: LabelPositionOptions | null): LabelPositionObject; getLabelPosition(x: number, y: number, angle: number, options?: LabelPositionOptions | null): LabelPositionObject; protected normalizeLabelPosition(): undefined; protected normalizeLabelPosition(pos: LabelPosition): LabelPositionObject; protected getLabelTransformationMatrix(labelPosition: LabelPosition): DOMMatrix; getVertexIndex(x: number, y: number): number; protected getEventArgs(e: E): EdgeViewMouseEventArgs; protected getEventArgs(e: E, x: number, y: number): EdgeViewPositionEventArgs; protected notifyUnhandledMouseDown(e: Dom.MouseDownEvent, x: number, y: number): void; notifyMouseDown(e: Dom.MouseDownEvent, x: number, y: number): void; notifyMouseMove(e: Dom.MouseMoveEvent, x: number, y: number): void; notifyMouseUp(e: Dom.MouseUpEvent, x: number, y: number): void; onClick(e: Dom.ClickEvent, x: number, y: number): void; onDblClick(e: Dom.DoubleClickEvent, x: number, y: number): void; onContextMenu(e: Dom.ContextMenuEvent, x: number, y: number): void; onMouseDown(e: Dom.MouseDownEvent, x: number, y: number): void; onMouseMove(e: Dom.MouseMoveEvent, x: number, y: number): KeyValue; onMouseUp(e: Dom.MouseUpEvent, x: number, y: number): KeyValue; onMouseOver(e: Dom.MouseOverEvent): void; onMouseOut(e: Dom.MouseOutEvent): void; onMouseEnter(e: Dom.MouseEnterEvent): void; onMouseLeave(e: Dom.MouseLeaveEvent): void; onMouseWheel(e: Dom.EventObject, x: number, y: number, delta: number): void; onCustomEvent(e: Dom.MouseDownEvent, name: string, x: number, y: number): void; onLabelMouseDown(e: Dom.MouseDownEvent, x: number, y: number): void; protected startEdgeDragging(e: Dom.MouseDownEvent, x: number, y: number): void; protected dragEdge(e: Dom.MouseMoveEvent, x: number, y: number): void; protected stopEdgeDragging(e: Dom.MouseUpEvent, x: number, y: number): void; prepareArrowheadDragging(type: TerminalType, options: { x: number; y: number; options?: KeyValue; isNewEdge?: boolean; fallbackAction?: EventDataArrowheadDragging['fallbackAction']; }): EventDataArrowheadDragging; protected createValidateConnectionArgs(type: TerminalType): (cellView: CellView, magnet: Element) => EventDataValidateConnectionArgs; protected beforeArrowheadDragging(data: EventDataArrowheadDragging): void; protected afterArrowheadDragging(data: EventDataArrowheadDragging): void; protected validateConnection(sourceView: CellView | null | undefined, sourceMagnet: Element | null | undefined, targetView: CellView | null | undefined, targetMagnet: Element | null | undefined, terminalType: TerminalType, edgeView?: EdgeView | null | undefined, candidateTerminal?: TerminalCellData | null | undefined): boolean; protected allowConnectToBlank(edge: Edge): boolean; protected validateEdge(edge: Edge, type: TerminalType, initialTerminal: TerminalData): boolean; protected arrowheadDragging(target: Element, x: number, y: number, data: EventDataArrowheadDragging): void; protected arrowheadDragged(data: EventDataArrowheadDragging, x: number, y: number): void; protected snapArrowhead(x: number, y: number, data: EventDataArrowheadDragging): void; protected snapArrowheadEnd(data: EventDataArrowheadDragging): void; protected finishEmbedding(data: EventDataArrowheadDragging): void; protected fallbackConnection(data: EventDataArrowheadDragging): void; protected notifyConnectionEvent(data: EventDataArrowheadDragging, e: Dom.MouseUpEvent): void; protected highlightAvailableMagnets(data: EventDataArrowheadDragging): void; protected unhighlightAvailableMagnets(data: EventDataArrowheadDragging): void; protected startArrowheadDragging(e: Dom.MouseDownEvent, x: number, y: number): void; protected dragArrowhead(e: Dom.MouseMoveEvent, x: number, y: number): void; protected stopArrowheadDragging(e: Dom.MouseUpEvent, x: number, y: number): void; startLabelDragging(e: Dom.MouseDownEvent, _x: number, _y: number): void; dragLabel(e: Dom.MouseMoveEvent, x: number, y: number): void; stopLabelDragging(_e: Dom.MouseUpEvent, _x: number, _y: number): void; } export declare const EdgeViewToStringTag: string;