/**
 * Set of functions to triangulate n-gon faces (i.e. polygon faces with an arbitrary (n) number of vertices).
 * This class is a JavaScript port of https://github.com/specklesystems/speckle-sharp/blob/main/Objects/Objects/Utils/MeshTriangulationHelper.cs
 */
export default class MeshTriangulationHelper {
    /**
     * Calculates the triangulation of the face at given faceIndex.
     * @remarks This implementation is based the ear clipping method proposed by "Christer Ericson (2005) <i>Real-Time Collision Detection</i>.
     * @param {Number}   faceIndex      The index of the face's cardinality indicator `n`
     * @param {Number[]}   faces      The list of faces in the mesh
     * @param {Number[]}   vertices   The list of vertices in the mesh
     * @return {Number[]} flat list of triangle faces (without cardinality indicators)
     */
    static triangulateFace(faceIndex: number, faces: number[], vertices: number[]): number[];
    /**
     * Tests if point v is within the triangle *abc*.
     * @param {Vector3} v
     * @param {Vector3} a
     * @param {Vector3} b
     * @param {Vector3} c
     * @returns {boolean} true if v is within triangle.
     */
    static testPointTriangle(v: Vector3, a: Vector3, b: Vector3, c: Vector3): boolean;
    /**
     * Checks that triangle abc is clockwise with reference to referenceNormal.
     * @param {Vector3} referenceNormal The normal direction of the face.
     * @param {Vector3} a
     * @param {Vector3} b
     * @param {Vector3} c
     * @returns {boolean} true if triangle is ccw
     */
    static triangleIsCCW(referenceNormal: Vector3, a: Vector3, b: Vector3, c: Vector3): boolean;
}
/**
 * Encapsulates vector maths operations required for polygon triangulation
 */
declare class Vector3 {
    constructor(x: any, y: any, z: any);
    x: any;
    y: any;
    z: any;
    add(v: any): Vector3;
    sub(v: any): Vector3;
    mul(n: any): Vector3;
    dot(v: any): number;
    cross(v: any): Vector3;
    squareSum(): number;
    normalize(): void;
}
export {};
