/**
 * B-spline basis function algorithms.
 * Implements Algorithms A2.1, A2.2, A2.3 from "The NURBS Book" (Piegl & Tiller).
 */
/**
 * Find the knot span index (Algorithm A2.1).
 * Returns i such that knots[i] <= u < knots[i+1], with special handling for the upper boundary.
 *
 * @param n - Number of control points minus 1 (= controlPoints.length - 1)
 * @param degree - Polynomial degree
 * @param u - Parameter value
 * @param knots - Knot vector
 */
export declare function findSpan(n: number, degree: number, u: number, knots: number[]): number;
/**
 * Compute non-vanishing basis functions (Algorithm A2.2).
 * Returns an array N of length (degree+1) where N[j] = N_{span-degree+j, degree}(u).
 *
 * @param span - Knot span index (from findSpan)
 * @param u - Parameter value
 * @param degree - Polynomial degree
 * @param knots - Knot vector
 */
export declare function basisFunctions(span: number, u: number, degree: number, knots: number[]): number[];
/**
 * Compute basis function derivatives (Algorithm A2.3).
 * Returns a 2D array ders[k][j] where ders[k][j] is the kth derivative
 * of the jth non-vanishing basis function at u.
 *
 * @param span - Knot span index
 * @param u - Parameter value
 * @param degree - Polynomial degree
 * @param n - Maximum derivative order to compute
 * @param knots - Knot vector
 */
export declare function derivBasisFunctions(span: number, u: number, degree: number, n: number, knots: number[]): number[][];
