import type { HitTestOptions } from '../../page-block/edgeless/type.js'; import { Bound } from '../utils/bound.js'; import { PointLocation } from '../utils/point-location.js'; import { type IVec2 } from '../utils/vec.js'; import { type SerializedXYWH } from '../utils/xywh.js'; import { type BaseProps, ElementModel } from './base.js'; import type { StrokeStyle } from './common.js'; export type PointStyle = 'None' | 'Arrow' | 'Triangle' | 'Circle' | 'Diamond'; export type Connection = { id?: string; position?: [number, number]; }; export declare enum ConnectorMode { Straight = 0, Orthogonal = 1, Curve = 2 } type ConnectorElementProps = BaseProps & { mode: ConnectorMode; stroke: string; strokeWidth: number; strokeStyle: StrokeStyle; roughness?: number; rough?: boolean; source: Connection; target: Connection; frontEndpointStyle?: PointStyle; rearEndpointStyle?: PointStyle; }; export declare class ConnectorElementModel extends ElementModel { updatingPath: boolean; get type(): string; get connectable(): false; path: PointLocation[]; absolutePath: PointLocation[]; xywh: SerializedXYWH; rotate: number; mode: ConnectorMode; strokeWidth: number; stroke: string; strokeStyle: StrokeStyle; roughness: number; rough?: boolean; source: Connection; target: Connection; frontEndpointStyle: PointStyle; rearEndpointStyle: PointStyle; moveTo(bound: Bound): void; hitTest(x: number, y: number, options?: HitTestOptions | undefined): boolean; containedByBounds(bounds: Bound): boolean; getNearestPoint(point: IVec2): IVec2; intersectWithLine(start: IVec2, end: IVec2): PointLocation[] | null; getRelativePointLocation(point: IVec2): PointLocation; serialize(): { [x: string]: any; }; } export {}; //# sourceMappingURL=connector.d.ts.map