import { Vector3 } from "three";
import { NurbsCurve } from "../core";
export interface UseNurbsCurveOptions {
    points: number[][];
    degree?: number;
    weights?: number[];
    knots?: number[];
    resolution?: number;
}
export interface UseNurbsCurveResult {
    curve: NurbsCurve | null;
    points: Vector3[];
    point: (t: number) => Vector3 | null;
    tangent: (t: number) => Vector3 | null;
    length: () => number;
    closestParam: (point: Vector3) => number | null;
}
export declare function useNurbsCurve({ points, degree, weights, knots, resolution, }: UseNurbsCurveOptions): UseNurbsCurveResult;
