import type { Position } from './Position';
import type { Centroid } from './Centroid';
export declare class HalfEdge {
    org: Position;
    dest: Position;
    face: Centroid;
    next?: HalfEdge;
    prev?: HalfEdge;
    sym: HalfEdge | null;
    id: number;
    private static _nextId;
    static epsilon: number;
    static fromFace(face: Centroid): HalfEdge[];
    static makeEdge(org: Position, dest: Position, face: Centroid): HalfEdge;
    static makeNext(edge: HalfEdge, dest: Position, face: Centroid): HalfEdge;
    static connect(edge0: HalfEdge, edge1: HalfEdge, face: Centroid): HalfEdge;
    isBoundary(): boolean;
    isRidge(): boolean;
    isCrease(): boolean;
    isBorder(): boolean;
    isOrphan(): boolean;
    asObject(): {
        id: number;
        org: number;
        dest: number;
        next: number | undefined;
        prev: number | undefined;
        sym: number | undefined;
    };
    private constructor();
    private compareFaces;
    private signedVolumeOfTetrahedron;
    private static nextId;
}
