export class TopoEdge {
    /**
     * Unique ID
     * @type {number}
     */
    index: number;
    /**
     *
     * @type {TopoVertex}
     */
    v0: TopoVertex;
    /**
     *
     * @type {TopoVertex}
     */
    v1: TopoVertex;
    /**
     *
     * @type {TopoTriangle[]}
     */
    faces: TopoTriangle[];
    /**
     *
     * @type {number}
     */
    lengthSqr: number;
    get byteSize(): number;
    /**
     *
     * @param {number} i
     * @returns {TopoVertex}
     */
    getVertexByIndex(i: number): TopoVertex;
    /**
     *
     * @param {TopoEdge} other
     */
    copy(other: TopoEdge): void;
    clone(): TopoEdge;
    /**
     *
     * @param {function(reason:string)} error_consumer
     * @return {boolean}
     */
    validate(error_consumer: any): boolean;
    /**
     * Returns false if edge is not licked back to by it's vertices (v0 is used for the check)
     * @return {boolean}
     */
    isLinked(): boolean;
    /**
     * Remove self from the topology graph
     */
    unlink(): void;
    /**
     *
     * @returns {boolean}
     */
    isDegenerateEdge(): boolean;
    /**
     * @deprecated use {@link query_edge_is_boundary} instead
     * Is this a an edge of topology as a whole?
     * @return {boolean}
     */
    isTopologyBorder(): boolean;
    /**
     * Note: requires length square to be pre-computed
     * @return {number}
     */
    get length(): number;
    computeSquaredLength(): void;
    /**
     * NOTE: does not update faces
     * @param {TopoVertex} existing
     * @param {TopoVertex} replacement
     */
    replaceVertex(existing: TopoVertex, replacement: TopoVertex): void;
    /**
     * Absorb other edge, as a result other edge becomes redundant
     * NOTE: edges MUST share vertices
     * @param {TopoEdge} other
     */
    merge(other: TopoEdge): void;
    /**
     *
     * @param {TopoTriangle} face
     * @return {boolean}
     */
    containsFace(face: TopoTriangle): boolean;
    /**
     *
     * @param {TopoTriangle} face
     */
    addFace(face: TopoTriangle): void;
    /**
     *
     * @param {TopoTriangle} face
     */
    addUniqueFace(face: TopoTriangle): void;
    /**
     *
     * @param {TopoTriangle} f
     */
    removeFace(f: TopoTriangle): void;
    /**
     * @deprecated use {@link query_edge_other_vertex} instead
     * @param {TopoVertex} v
     * @return {TopoVertex}
     */
    getOtherVertex(v: TopoVertex): TopoVertex;
    /**
     * @deprecated use {@link @query_vertex_in_edge} instead
     * @param {TopoVertex} v
     * @return {boolean}
     */
    containsVertex(v: TopoVertex): boolean;
    /**
     @deprecated use {@link query_vertices_in_edge} instead
     * @param {TopoVertex} a
     * @param {TopoVertex} b
     * @return {boolean}
     */
    containsBothVertices(a: TopoVertex, b: TopoVertex): boolean;
    /**
     *
     * @param {TopoEdge} other
     * @returns {boolean}
     */
    containsSameVerticesAs(other: TopoEdge): boolean;
    /**
     * @readonly
     * @type {boolean}
     */
    readonly isTopoEdge: boolean;
}
//# sourceMappingURL=TopoEdge.d.ts.map