import '../../assert/js/assert.js';
import '../../globals.js';
import Ray3 from './Ray3.js';
import Vector3 from './Vector3.js';
export default class Plane3 {
    normal: Vector3;
    distance: number;
    /**
     * @param normal - A normal vector (perpendicular) to the plane
     * @param distance - The signed distance to the plane from the origin, so that normal.times( distance )
     *                            will be a point on the plane.
     */
    constructor(normal: Vector3, distance: number);
    intersectWithRay(ray: Ray3): Vector3;
    /**
     * Returns a new plane that passes through three points $(\vec{a},\vec{b},\vec{c})$
     * The normal of the plane points along $\vec{c-a} \times \vec{b-a}$
     * Passing three collinear points will return null
     *
     * @param a - first point
     * @param b - second point
     * @param c - third point
     */
    static fromTriangle(a: Vector3, b: Vector3, c: Vector3): Plane3 | null;
    getIntersection(plane: Plane3): Ray3 | null;
    static readonly XY: Plane3;
    static readonly XZ: Plane3;
    static readonly YZ: Plane3;
}
//# sourceMappingURL=Plane3.d.ts.map