/**
 * Quadric Error Metric
 * Triangular 4x4 matrix, see https://en.wikipedia.org/wiki/Triangular_matrix
 */
export class Quadratic3 {
    a2: number;
    ab: number;
    ac: number;
    ad: number;
    b2: number;
    bc: number;
    bd: number;
    c2: number;
    cd: number;
    d2: number;
    /**
     *
     * @param {ArrayLike<number>|number[]|Float32Array} result
     */
    toVector3(result: ArrayLike<number> | number[] | Float32Array): void;
    /**
     *
     * @param {ArrayLike<number>|number[]|Float32Array} m3
     */
    toTensorM3(m3: ArrayLike<number> | number[] | Float32Array): void;
    /**
     * Equivalent to taking a tensor followed by matrix inversion
     * @param {ArrayLike<number>|number[]|Float32Array} m3
     * @param {number} epsilon
     * @returns {boolean} whether operation was successful or not
     */
    toTensorM3Inverse(m3: ArrayLike<number> | number[] | Float32Array, epsilon: number): boolean;
    /**
     * Set from plane expressed as a 4 component vector
     * @param {number} x plane normal
     * @param {number} y plane normal
     * @param {number} z plane normal
     * @param {number} w plane offset
     */
    setFromVector4(x: number, y: number, z: number, w: number): void;
    /**
     *
     * @param {TopoTriangle} face
     */
    setFromFace(face: TopoTriangle): void;
    /**
     * Squared distance from the given point to plane encoded by the quadratic
     * @param {number} x
     * @param {number} y
     * @param {number} z
     * @returns {number}
     */
    evaluate(x: number, y: number, z: number): number;
    /**
     * Find optimal vertex position based on the quadratic
     *
     * Based on Blender's implementation: https://github.com/blender/blender/blob/594f47ecd2d5367ca936cf6fc6ec8168c2b360d0/source/blender/blenlib/intern/quadric.c
     *
     * @param {number[]} out
     * @returns {boolean}
     */
    optimize(out: number[]): boolean;
    /**
     *
     * @param {Quadratic3} Q
     */
    add(Q: Quadratic3): void;
    /**
     *
     * @param {number} v
     */
    multiplyScalar(v: number): void;
    /**
     *
     * @returns {Quadratic3}
     */
    clone(): Quadratic3;
    /**
     *
     * @param {Quadratic3} other
     */
    copy(other: Quadratic3): void;
    /**
     * Set all matrix values to 0
     */
    clear(): void;
}
//# sourceMappingURL=Quadratic3.d.ts.map