| import { | 
 |   Vector, | 
 |   Vector2D, | 
 |   Vector3D, | 
 |   Point2D, | 
 |   Point3D, | 
 |   origin2D as origin, | 
 |   origin3D, | 
 |   CoordinateSystem, | 
 |   origin2D, | 
 | } from "./b"; | 
 | import { Comparator } from "./c"; | 
 |  | 
 | /** | 
 |  * Represents a point in 2D space using polar coordinates. | 
 |  * - `magnitude`: radial distance from the origin. | 
 |  * - `angle`: angle in radians from the positive x-axis. | 
 |  */ | 
 | interface PolarCoordinate { | 
 |   magnitude: number; | 
 |   angle: number; | 
 | } | 
 |  | 
 | /** | 
 |  * Represents a point in 3D space using cylindrical coordinates. | 
 |  * - `radius`: radial distance from the z-axis. | 
 |  * - `angle`: angle in radians from the x-axis. | 
 |  * - `z`: height along the z-axis. | 
 |  */ | 
 | interface CylindricalCoordinate { | 
 |   radius: number; | 
 |   angle: number; | 
 |   z: number; | 
 | } | 
 |  | 
 | /** | 
 |  * Represents a point in 3D space using spherical coordinates. | 
 |  * - `magnitude`: radial distance from the origin. | 
 |  * - `theta`: inclination angle from the z-axis. | 
 |  * - `tau`: azimuthal angle from the x-axis in the xy-plane. | 
 |  */ | 
 | interface SphericalCoordinate { | 
 |   magnitude: number; | 
 |   theta: number; | 
 |   tau: number; | 
 | } | 
 |  | 
 | /** | 
 |  * Represents a mathematical matrix. | 
 |  * - `rows`: number of rows. | 
 |  * - `columns`: number of columns. | 
 |  * - Numeric index maps to an array of numbers (row data). | 
 |  */ | 
 | interface Matrix { | 
 |   [index: number]: number[]; | 
 |   rows: number; | 
 |   columns: number; | 
 | } | 
 |  | 
 | /** | 
 |  * A transformation matrix that acts as a function on 2D vectors. | 
 |  * @template V Vector2D subtype | 
 |  */ | 
 | interface TransformerMatrix<V extends Vector2D> extends Matrix { | 
 |   /** | 
 |    * Transforms the input vector using this matrix. | 
 |    * @param v Input vector | 
 |    * @returns Transformed vector | 
 |    */ | 
 |   (v: V): V; | 
 | } | 
 |  | 
 | /** | 
 |  * A 2D coordinate system with vector and point operations. | 
 |  */ | 
 | export declare class CoordinateSystem2D implements CoordinateSystem<Point2D> { | 
 |   /** | 
 |    * @param origin The origin point of the coordinate system. | 
 |    */ | 
 |   constructor(origin: typeof origin2D); | 
 |  | 
 |   /** Points registered in this coordinate system. */ | 
 |   points: Point2D[]; | 
 |  | 
 |   /** Origin of the coordinate system. */ | 
 |   readonly origin: Point2D; | 
 |  | 
 |   /** | 
 |    * Adds a point to the coordinate system. | 
 |    * @param point The point to add. | 
 |    */ | 
 |   addPoint(point: Point2D): void; | 
 |  | 
 |   /** | 
 |    * Adds a vector to the coordinate system from a starting point. | 
 |    * @param vector The vector to add. | 
 |    * @param start The start point (defaults to origin). | 
 |    */ | 
 |   addVector(vector: Vector2D, start?: Point2D): void; | 
 |  | 
 |   /** The unit vector along the x-axis. */ | 
 |   static get xAxis(): typeof unitI2D; | 
 |  | 
 |   /** The unit vector along the y-axis. */ | 
 |   static get yAxis(): typeof unitJ2D; | 
 | } | 
 |  | 
 | /** | 
 |  * A 3D coordinate system with vector and point operations. | 
 |  */ | 
 | export declare class CoordinateSystem3D implements CoordinateSystem<Point3D> { | 
 |   /** | 
 |    * @param origin The origin point of the coordinate system. | 
 |    */ | 
 |   constructor(origin: typeof origin3D); | 
 |  | 
 |   /** Points registered in this coordinate system. */ | 
 |   points: Point3D[]; | 
 |  | 
 |   /** Origin of the coordinate system. */ | 
 |   readonly origin: Point3D; | 
 |  | 
 |   /** | 
 |    * Adds a point to the coordinate system. | 
 |    * @param point The point to add. | 
 |    */ | 
 |   addPoint(point: Point3D): void; | 
 |  | 
 |   /** | 
 |    * Adds a vector to the coordinate system from a starting point. | 
 |    * @param vector The vector to add. | 
 |    * @param start The start point (defaults to origin). | 
 |    */ | 
 |   addVector(vector: Vector3D, start?: Point3D): void; | 
 |  | 
 |   /** The unit vector along the x-axis. */ | 
 |   static get xAxis(): typeof unitI3D; | 
 |  | 
 |   /** The unit vector along the y-axis. */ | 
 |   static get yAxis(): typeof unitJ3D; | 
 |  | 
 |   /** The unit vector along the z-axis. */ | 
 |   static get zAxis(): typeof unitK3D; | 
 | } | 
 |  | 
 | /** | 
 |  * A matrix that includes vector comparison capabilities. | 
 |  * @template V Vector2D subtype | 
 |  */ | 
 | interface ComparatorMatrix<V extends Vector2D> extends Matrix, Comparator<V> {} | 
 |  | 
 | /** | 
 |  * Computes the dot product between two vectors. | 
 |  * @param v1 First vector. | 
 |  * @param v2 Second vector. | 
 |  * @returns A scalar projection as a vector. | 
 |  */ | 
 | declare function dotProduct<V extends Vector>(v1: V, v2: V): V; | 
 |  | 
 | /** | 
 |  * Computes the cross product of two 3D vectors. | 
 |  * @param v1 First vector. | 
 |  * @param v2 Second vector. | 
 |  * @returns A new 3D vector perpendicular to both. | 
 |  */ | 
 | declare function crossProduct(v1: Vector3D, v2: Vector3D): Vector3D; | 
 |  | 
 | /** | 
 |  * Maps a 2D vector to a 3D vector (z = 0). | 
 |  * @param v Input 2D vector. | 
 |  * @returns A 3D vector. | 
 |  */ | 
 | declare function mapTo3D(v: Vector2D): Vector3D; | 
 |  | 
 | /** | 
 |  * Converts a 2D point to polar coordinates. | 
 |  * @param point A 2D point. | 
 |  * @returns Polar representation of the point. | 
 |  */ | 
 | declare function toPolarCoordinate(point: Point2D): PolarCoordinate; | 
 |  | 
 | /** | 
 |  * Converts a 3D point to cylindrical coordinates. | 
 |  * @param point A 3D point. | 
 |  * @returns Cylindrical representation. | 
 |  */ | 
 | declare function toCylindricalCoordinate(point: Point3D): CylindricalCoordinate; | 
 |  | 
 | /** | 
 |  * Converts a 3D point to spherical coordinates. | 
 |  * @param point A 3D point. | 
 |  * @returns Spherical representation. | 
 |  */ | 
 | declare function toSphericalCoordinate(point: Point3D): SphericalCoordinate; | 
 |  | 
 | /** | 
 |  * Converts cylindrical coordinates to spherical coordinates. | 
 |  * @param point Cylindrical coordinate. | 
 |  * @returns Spherical representation. | 
 |  */ | 
 | declare function toSphericalCoordinate(point: CylindricalCoordinate): SphericalCoordinate; | 
 |  | 
 | /** Unit vector in 2D x-direction. */ | 
 | export declare const unitI2D: Vector2D; | 
 | /** Unit vector in 2D y-direction. */ | 
 | export declare const unitJ2D: Vector2D; | 
 | /** Unit vector in 3D x-direction. */ | 
 | export declare const unitI3D: Vector3D; | 
 | /** Unit vector in 3D y-direction. */ | 
 | export declare const unitJ3D: Vector3D; | 
 | /** Unit vector in 3D z-direction. */ | 
 | export declare const unitK3D: Vector3D; | 
 |  | 
 | export { | 
 |   origin, | 
 |   origin3D, | 
 |   dotProduct, | 
 |   crossProduct, | 
 |   mapTo3D, | 
 |   TransformerMatrix, | 
 |   ComparatorMatrix, | 
 | }; | 
 |  | 
 | export { | 
 |   PolarCoordinate as PolarPoint, | 
 |   CylindricalCoordinate as CylindricalPoint, | 
 |   SphericalCoordinate as SphericalPoint, | 
 |   toPolarCoordinate, | 
 |   toSphericalCoordinate, | 
 |   toCylindricalCoordinate, | 
 | }; |