/**
 * 3D ray
 * Optimized representation for faster memory access
 */
export class Ray3 extends Float32Array {
    /**
     *
     * @param {number} origin_x
     * @param {number} origin_y
     * @param {number} origin_z
     * @param {number} direction_x
     * @param {number} direction_y
     * @param {number} direction_z
     * @param {number} t_max
     * @return {Ray3}
     */
    static from(origin_x: number, origin_y: number, origin_z: number, direction_x: number, direction_y: number, direction_z: number, t_max?: number): Ray3;
    constructor();
    set tMax(arg: any);
    get tMax(): any;
    6: any;
    /**
     *
     * @param {number[]|Float32Array} v
     */
    set origin(arg: number[] | Float32Array);
    get origin(): number[] | Float32Array;
    get origin_x(): number;
    get origin_y(): number;
    get origin_z(): number;
    /**
     *
     * @param {number} x
     * @param {number} y
     * @param {number} z
     */
    setOrigin(x: number, y: number, z: number): void;
    0: number;
    1: number;
    2: number;
    /**
     *
     * @param {number[]|Float32Array} v
     */
    set direction(arg: number[] | Float32Array);
    get direction(): number[] | Float32Array;
    get direction_x(): number;
    get direction_y(): number;
    get direction_z(): number;
    /**
     *
     * @param {number} x
     * @param {number} y
     * @param {number} z
     */
    setDirection(x: number, y: number, z: number): void;
    3: number;
    4: number;
    5: number;
    normalizeDirection(): void;
    /**
     *
     * @param {number} x normalized coordinates in -1,1 range
     * @param {number} y normalized coordinates in -1,1 range
     * @param {number} z normalized coordinates in -1,1 range, typically 0.5
     * @param {number[]|Float32Array|mat4} transform
     * @param {number[]|Float32Array|mat4} projection_inverse
     */
    projectFromPerspectiveCamera(x: number, y: number, z: number, transform: number[] | Float32Array | mat4, projection_inverse: number[] | Float32Array | mat4): void;
    /**
     *
     * @param {number} distance
     */
    shiftForward(distance: number): void;
    /**
     *
     * @param {number[]|mat4|Float32Array} m4
     */
    applyMatrix4(m4: number[] | mat4 | Float32Array): void;
    /**
     *
     * @returns {Ray3}
     */
    clone(): Ray3;
    /**
     *
     * @param {Ray3} other
     */
    copy(other: Ray3): void;
    hash(): number;
    /**
     *
     * @param {Ray3} other
     * @returns {boolean}
     */
    equals(other: Ray3): boolean;
    /**
     * Compute `t` value for a given point in 3d space.
     * This is the distance along the direction from origin of the ray
     * Value will be negative if the ray is pointing away from the point
     * PRECONDITION: ray direction must be normalized
     * @param {number} x
     * @param {number} y
     * @param {number} z
     * @returns {number}
     */
    computeSignedDistance(x: number, y: number, z: number): number;
    /**
     * Useful for type checking
     * @readonly
     * @type {boolean}
     */
    readonly isRay3: boolean;
}
//# sourceMappingURL=Ray3.d.ts.map