import { Vector3 } from "./Vector3.ts"; /** Ray defined by an origin point and direction vector. */ export declare class Ray { #private; constructor(origin?: Vector3, direction?: Vector3); get origin(): Vector3; set origin(value: Vector3); get direction(): Vector3; set direction(value: Vector3); set(origin: Vector3, direction: Vector3): this; clone(): Ray; copy(ray: Ray): this; /** Returns the point at parameter t along the ray. */ at(t: number, target?: Vector3): Vector3; /** Aims the ray direction toward v. */ lookAt(v: Vector3): this; /** Moves the origin to the point at t and keeps the direction. */ recast(t: number): this; closestPointToPoint(point: Vector3, target?: Vector3): Vector3; distanceToPoint(point: Vector3): number; distanceSqToPoint(point: Vector3): number; /** Squared distance from the ray to the closest point on a segment [v0,v1]. */ distanceSqToSegment(v0: Vector3, v1: Vector3, optionalPointOnRay?: Vector3, optionalPointOnSegment?: Vector3): number; intersectSphere(sphere: { centre: Vector3; radius: number; }, target?: Vector3): Vector3 | undefined; intersectsSphere(sphere: { centre: Vector3; radius: number; }): boolean; intersectPlane(plane: { normal: Vector3; constant: number; }, target?: Vector3): Vector3 | undefined; intersectsPlane(plane: { normal: Vector3; constant: number; }): boolean; distanceToPlane(plane: { normal: Vector3; constant: number; }): number | undefined; intersectBox3(box: { min: Vector3; max: Vector3; }, target?: Vector3): Vector3 | undefined; intersectsBox3(box: { min: Vector3; max: Vector3; }): boolean; /** Moller-Trumbore ray-triangle intersection. */ intersectTriangle(a: Vector3, b: Vector3, c: Vector3, backfaceCulling: boolean, target?: Vector3): Vector3 | undefined; applyMatrix4(matrix4: { elements: ArrayLike; }): this; equals(ray: Ray): boolean; } //# sourceMappingURL=Ray.d.ts.map