import { Plane, Vector } from '../math';
import { Edge } from '../modeling';
/**
 * Creates a BSpline curve passing through a set of points.
 * @param {Object} parameters - The parameters for the BSpline curve.
 * @param {Plane} [parameters.plane=Plane.XY] - The plane in which the curve is constructed.
 * @param {Vector[]} parameters.points - The points through which the curve passes.
 * @param {number} [parameters.minDegree=1] - The minimum degree of the BSpline curve.
 * @param {number} [parameters.maxDegree=6] - The maximum degree of the BSpline curve.
 * @param {('c0'|'c1'|'c2'|'c3'|'cn'|'g1'|'g2')} [parameters.continuityType="c2"] - The continuity type of the curve.
 * @returns {Edge} An `Edge` object representing the constructed `BSpline` curve.
 */
export function BSplineCurve({ plane, points, minDegree, maxDegree, continuityType }: {
    plane?: Plane;
    points: Vector[];
    minDegree?: number;
    maxDegree?: number;
    continuityType?: ("c0" | "c1" | "c2" | "c3" | "cn" | "g1" | "g2");
}): Edge;
