import { CellComplex } from '../geometry/cell-complex.js'; export interface CliffordCurveOptions { /** Windings in the xy plane. Default 2. */ p?: number; /** Windings in the zw plane. Default 3. */ q?: number; /** Circumradius: every vertex lies on the 3-sphere of this radius. Default 1. */ radius?: number; /** * Ratio of the zw circle radius to the xy circle radius. 1 puts the * curve on the square Clifford torus. Default 1. */ radiusRatio?: number; /** Number of polyline segments. Default 256. */ segments?: number; } /** * The (p, q) curve on a Clifford torus in S³: * * γ(θ) = (r₁·cos pθ, r₁·sin pθ, r₂·cos qθ, r₂·sin qθ), θ ∈ [0, 2π) * * with r₁² + r₂² = radius², so the whole curve lies on the 3-sphere. For * coprime p and q this is the (p, q) torus knot — but flat, living on the * flat Clifford torus, with none of the pinching a torus embedded in R³ * forces on it. It is exactly the vertex path of the p×q duoprism made * continuous. * * Under the equal-speed double rotation (xy and zw together — a Clifford * displacement) the curve slides along itself: the isoclinic flow of S³ * is tangent to it everywhere. * * Returns a closed polyline: a CellComplex with 1-cells only, ready for * ProjectedEdges3D. */ export declare function createCliffordCurve(options?: CliffordCurveOptions): CellComplex; //# sourceMappingURL=clifford-curve.d.ts.map