/// <reference types="gl-matrix/index.js" />
export class TopoTriangle {
    /**
     * Utility constructor
     * @param {number} ax
     * @param {number} ay
     * @param {number} az
     * @param {number} bx
     * @param {number} by
     * @param {number} bz
     * @param {number} cx
     * @param {number} cy
     * @param {number} cz
     * @return {TopoTriangle}
     */
    static fromPoints(ax: number, ay: number, az: number, bx: number, by: number, bz: number, cx: number, cy: number, cz: number): TopoTriangle;
    /**
     * Identifying index, can be used to link back to buffer-geometry face by index or any other useful ID purposes
     * @type {number}
     */
    index: number;
    /**
     *
     * @type {TopoVertex[]}
     */
    vertices: TopoVertex[];
    /**
     *
     * @type {TopoEdge[]}
     */
    edges: TopoEdge[];
    /**
     *
     * @type {number[]|vec3}
     */
    normal: number[] | vec3;
    get byteSize(): number;
    /**
     *
     * @param {TopoTriangle} other
     */
    copy(other: TopoTriangle): void;
    clone(): TopoTriangle;
    /**
     *
     * @param {function(reason:string)} error_consumer
     * @return {boolean}
     */
    validate(error_consumer: any): boolean;
    /**
     *
     * @return {boolean}
     */
    isLinked(): boolean;
    /**
     * NOTE: does not update vertices
     * @param {TopoEdge} existing
     * @param {TopoEdge} replacement
     */
    replaceEdge(existing: TopoEdge, replacement: TopoEdge): void;
    /**
     * NOTE: does not update edges
     * @param {TopoVertex} existing
     * @param {TopoVertex} replacement
     */
    replaceVertex(existing: TopoVertex, replacement: TopoVertex): void;
    /**
     * Some or all vertices are the same, resulting in line or point representation
     */
    isDegenerateTopology(): boolean;
    /**
     * Remove self from the topology graph
     */
    unlink(): void;
    /**
     *
     * @param {TopoEdge} e
     */
    addEdge(e: TopoEdge): void;
    /**
     *
     * @param {TopoEdge} e
     * @return {boolean}
     */
    addUniqueEdge(e: TopoEdge): boolean;
    /**
     *
     * @param {TopoEdge} e
     */
    removeEdge(e: TopoEdge): void;
    /**
     *
     * @param {TopoEdge} edge
     * @returns {boolean}
     */
    containsEdge(edge: TopoEdge): boolean;
    computeNormal(): void;
    /**
     *
     * @param {number} index
     * @param {TopoVertex} vertex
     */
    setVertexAt(index: number, vertex: TopoVertex): void;
    /**
     *
     * @param {TopoVertex} vertex
     * @return {boolean}
     */
    containsVertex(vertex: TopoVertex): boolean;
    /**
     * Get all neighbours that share an edge with this face
     * @param {TopoTriangle[]} result
     * @param {number} result_offset
     * @returns {number} number of found neighbours
     */
    getEdgeNeighbours(result: TopoTriangle[], result_offset: number): number;
    /**
     * @readonly
     * @type {boolean}
     */
    readonly isTopoFace: boolean;
}
import { TopoVertex } from "./TopoVertex.js";
import { TopoEdge } from "./TopoEdge.js";
import { vec3 } from "gl-matrix";
//# sourceMappingURL=TopoTriangle.d.ts.map