import { Point, Vector, Segment, Triangle, Ray, Line, Plane, AABB, Polygon } from "./Primitive";
import { NDArrayFloat32 } from "../ndarray/NDArray";
/** Create a single point from coordinates. */
export declare function point(...coords: number[]): Point;
/** Create a point or batch from flat data + element size. */
export declare function point(data: number[] | Float32Array, dims?: number): Point;
/** Create a point or batch from an NDArray (no copy). */
export declare function point(arr: NDArrayFloat32): Point;
/** Create a single vector from components. */
export declare function vector(...coords: number[]): Vector;
/** Create a vector or batch from flat data + element size. */
export declare function vector(data: number[] | Float32Array, dims?: number): Vector;
/** Create a vector or batch from an NDArray (no copy). */
export declare function vector(arr: NDArrayFloat32): Vector;
/** Create a segment from two point Primitives. */
export declare function segment(start: Point, end: Point): Segment;
/** Create a segment from two NDArrays (start points, end points). */
export declare function segment(start: NDArrayFloat32, end: NDArrayFloat32): Segment;
/** Create a segment from a flat array [start..., end...]. */
export declare function segment(data: number[] | Float32Array): Segment;
/** Create a segment or batch from flat data + spatial dimension. */
export declare function segment(data: number[] | Float32Array, dims: number): Segment;
/** Create a triangle from three point Primitives. */
export declare function triangle(a: Point, b: Point, c: Point): Triangle;
/** Create a triangle from three NDArrays (vertex sets). */
export declare function triangle(a: NDArrayFloat32, b: NDArrayFloat32, c: NDArrayFloat32): Triangle;
/** Create a triangle from a flat array [a..., b..., c...]. */
export declare function triangle(data: number[] | Float32Array): Triangle;
/** Create a triangle or batch from flat data + spatial dimension. */
export declare function triangle(data: number[] | Float32Array, dims: number): Triangle;
/** Create a ray from origin Point and direction Vector. */
export declare function ray(origin: Point, direction: Vector): Ray;
/** Create a ray from two NDArrays (origins, directions). */
export declare function ray(origins: NDArrayFloat32, directions: NDArrayFloat32): Ray;
/** Create a ray from a flat array [origin..., direction...]. */
export declare function ray(data: number[] | Float32Array): Ray;
/** Create a ray or batch from flat data + spatial dimension. */
export declare function ray(data: number[] | Float32Array, dims: number): Ray;
/** Create a line from origin Point and direction Vector. */
export declare function line(origin: Point, direction: Vector): Line;
/** Create a line from two NDArrays (origins, directions). */
export declare function line(origins: NDArrayFloat32, directions: NDArrayFloat32): Line;
/** Create a line from a flat array [origin..., direction...]. */
export declare function line(data: number[] | Float32Array): Line;
/** Create a line or batch from flat data + spatial dimension. */
export declare function line(data: number[] | Float32Array, dims: number): Line;
/** Create a plane from normal Vector and offset. */
export declare function plane(normal: Vector, offset: number): Plane;
/** Create a plane from normal NDArray and offset. */
export declare function plane(normal: NDArrayFloat32, offset: number): Plane;
/** Create a plane from a flat [a, b, c, d] array. */
export declare function plane(data: number[] | Float32Array): Plane;
/** Create an AABB from min and max Points. */
export declare function aabb(min: Point, max: Point): AABB;
/** Create an AABB from two NDArrays (mins, maxs). */
export declare function aabb(mins: NDArrayFloat32, maxs: NDArrayFloat32): AABB;
/** Create an AABB from a flat array [min..., max...]. */
export declare function aabb(data: number[] | Float32Array): AABB;
/** Create an AABB or batch from flat data + spatial dimension. */
export declare function aabb(data: number[] | Float32Array, dims: number): AABB;
/** Create a polygon from an array of Point Primitives. */
export declare function polygon(vertices: Point[]): Polygon;
/** Create a polygon or batch from an NDArray (no copy). */
export declare function polygon(arr: NDArrayFloat32): Polygon;
/** Create a polygon from a flat array + dimension. */
export declare function polygon(data: number[] | Float32Array, dims: number): Polygon;
//# sourceMappingURL=factories.d.ts.map