## API Report File for "@jsplumb/connector-bezier"

> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).

```ts

import { AbstractConnector } from '@jsplumb/core';
import { AbstractSegment } from '@jsplumb/common';
import { AnchorPlacement } from '@jsplumb/common';
import { BoundingBox } from '@jsplumb/util';
import { Connection } from '@jsplumb/core';
import { ConnectorComputeParams } from '@jsplumb/core';
import { ConnectorOptions } from '@jsplumb/common';
import { Geometry } from '@jsplumb/common';
import { LineXY } from '@jsplumb/util';
import { PaintGeometry } from '@jsplumb/core';
import { PointNearPath } from '@jsplumb/common';
import { PointXY } from '@jsplumb/util';
import { SegmentParams } from '@jsplumb/common';

// Warning: (ae-internal-missing-underscore) The name "AbstractBezierConnector" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export abstract class AbstractBezierConnector extends AbstractConnector {
    constructor(connection: Connection, params: any);
    // (undocumented)
    clockwise: boolean;
    // (undocumented)
    _compute(paintInfo: PaintGeometry, p: ConnectorComputeParams): void;
    // (undocumented)
    abstract _computeBezier(paintInfo: PaintGeometry, p: ConnectorComputeParams, sp: PointXY, tp: PointXY, _w: number, _h: number): void;
    // (undocumented)
    connection: Connection;
    // (undocumented)
    curviness: number;
    // (undocumented)
    exportGeometry(): BezierConnectorGeometry;
    // (undocumented)
    geometry: BezierConnectorGeometry;
    // (undocumented)
    getDefaultStubs(): [number, number];
    // (undocumented)
    importGeometry(geometry: BezierConnectorGeometry): boolean;
    // (undocumented)
    isLoopbackCurrently: boolean;
    // (undocumented)
    loopbackRadius: number;
    // (undocumented)
    margin: number;
    // (undocumented)
    orientation: string;
    // (undocumented)
    proximityLimit: number;
    // (undocumented)
    showLoopback: boolean;
    // (undocumented)
    transformGeometry(g: BezierConnectorGeometry, dx: number, dy: number): BezierConnectorGeometry;
}

// @public
export interface AbstractBezierOptions extends ConnectorOptions {
    curviness?: number;
    // (undocumented)
    loopbackRadius?: number;
    // (undocumented)
    margin?: number;
    // (undocumented)
    orientation?: string;
    // (undocumented)
    proximityLimit?: number;
    showLoopback?: boolean;
}

// @public (undocumented)
export type AxisCoefficients = [number, number, number, number];

// Warning: (ae-incompatible-release-tags) The symbol "BezierConnector" is marked as @public, but its signature references "AbstractBezierConnector" which is marked as @internal
//
// @public (undocumented)
export class BezierConnector extends AbstractBezierConnector {
    constructor(connection: Connection, params: BezierOptions);
    // (undocumented)
    _computeBezier(paintInfo: PaintGeometry, p: ConnectorComputeParams, sp: AnchorPlacement, tp: AnchorPlacement, _w: number, _h: number): void;
    // (undocumented)
    connection: Connection;
    // (undocumented)
    protected _findControlPoint(point: PointXY, sourceAnchorPosition: AnchorPlacement, targetAnchorPosition: AnchorPlacement, soo: [number, number], too: [number, number]): PointXY;
    // (undocumented)
    getCurviness(): number;
    // (undocumented)
    majorAnchor: number;
    // (undocumented)
    minorAnchor: number;
    // (undocumented)
    static type: string;
    // (undocumented)
    type: string;
}

// @public
export interface BezierConnectorGeometry extends Geometry {
    // (undocumented)
    controlPoints: [
    PointXY,
    PointXY
    ];
    // (undocumented)
    source: AnchorPlacement;
    // (undocumented)
    target: AnchorPlacement;
}

// @public
export function bezierLineIntersection(x1: number, y1: number, x2: number, y2: number, curve: Curve): Array<PointXY>;

// @public
export interface BezierOptions extends AbstractBezierOptions {
}

// @public (undocumented)
export class BezierSegment extends AbstractSegment {
    constructor(params: BezierSegmentParams);
    // (undocumented)
    cp1x: number;
    // (undocumented)
    cp1y: number;
    // (undocumented)
    cp2x: number;
    // (undocumented)
    cp2y: number;
    // (undocumented)
    curve: Curve;
    // (undocumented)
    findClosestPointOnPath(x: number, y: number): PointNearPath;
    // (undocumented)
    getLength(): number;
    // (undocumented)
    getPath(isFirstSegment: boolean): string;
    gradientAtPoint(location: number, absolute?: boolean): number;
    // (undocumented)
    length: number;
    // (undocumented)
    lineIntersection(x1: number, y1: number, x2: number, y2: number): Array<PointXY>;
    // (undocumented)
    pointAlongPathFrom(location: number, distance: number, absolute?: boolean): PointXY;
    pointOnPath(location: number, absolute?: boolean): PointXY;
    // (undocumented)
    static segmentType: string;
    // (undocumented)
    type: string;
}

// @public (undocumented)
export interface BezierSegmentParams extends SegmentParams {
    // (undocumented)
    cp1x: number;
    // (undocumented)
    cp1y: number;
    // (undocumented)
    cp2x: number;
    // (undocumented)
    cp2y: number;
}

// @public
export function boundingBoxIntersection(boundingBox: BoundingBox, curve: Curve): Array<PointXY>;

// @public
export function boxIntersection(x: number, y: number, w: number, h: number, curve: Curve): Array<PointXY>;

// @public (undocumented)
export function computeBezierLength(curve: Curve): number;

// @public (undocumented)
export type Curve = Array<PointXY>;

// @public (undocumented)
export function dist(p1: PointXY, p2: PointXY): number;

// @public (undocumented)
export type DistanceFromCurve = {
    location: number;
    distance: number;
};

// @public
export function distanceFromCurve(point: PointXY, curve: Curve): DistanceFromCurve;

// @public
export function gradientAtPoint(curve: Curve, location: number): number;

// @public
export function gradientAtPointAlongPathFrom(curve: Curve, location: number, distance: number): number;

// @public (undocumented)
export function isPoint(curve: Curve): boolean;

// @public
export function locationAlongCurveFrom(curve: Curve, location: number, distance: number): number;

// @public
export function nearestPointOnCurve(point: PointXY, curve: Curve): {
    point: PointXY;
    location: number;
};

// @public
export function perpendicularToPathAt(curve: Curve, location: number, length: number, distance: number): LineXY;

// @public
export function pointAlongCurveFrom(curve: Curve, location: number, distance: number): PointXY;

// @public
export function pointAlongPath(curve: Curve, location: number, distance: number): PointOnPath;

// @public
export function pointOnCurve(curve: Curve, location: number): PointXY;

// @public (undocumented)
export type PointOnPath = {
    point: PointXY;
    location: number;
};

// Warning: (ae-incompatible-release-tags) The symbol "StateMachineConnector" is marked as @public, but its signature references "AbstractBezierConnector" which is marked as @internal
//
// @public (undocumented)
export class StateMachineConnector extends AbstractBezierConnector {
    constructor(connection: Connection, params: StateMachineOptions);
    // (undocumented)
    _computeBezier(paintInfo: PaintGeometry, params: ConnectorComputeParams, sp: AnchorPlacement, tp: AnchorPlacement, w: number, h: number): void;
    // (undocumented)
    connection: Connection;
    // (undocumented)
    _controlPoint: PointXY;
    // (undocumented)
    static type: string;
    // (undocumented)
    type: string;
}

// @public (undocumented)
export interface StateMachineOptions extends AbstractBezierOptions {
}

```
