import { TetrahedronPoint, Tetrahedron, TetNeighbourDataWithSource } from './TetCommon';
import { Vector3, Matrix4, Box3, Sphere } from 'three';
export declare class TetGeometry {
    readonly tetrahedrons: Map<number, Tetrahedron>;
    readonly points: Map<number, TetrahedronPoint>;
    readonly tetrahedronsByPointId: Map<number, Set<number>>;
    private _nextPointId;
    private _nextTetId;
    private _pointsCount;
    private _tetsCount;
    private _lastAddedTetId;
    userData: {
        [key: string]: any;
    };
    addPoint(x: number, y: number, z: number): number;
    removePoint(pointId: number): void;
    pointsCount(): number;
    tetsCount(): number;
    firstTetId(): number | undefined;
    lastAddedTetId(): number | null;
    addTetrahedron(p0: number, p1: number, p2: number, p3: number): number | undefined;
    removeTets(tetIds: number[], sharedFacesNeighbourData?: Set<TetNeighbourDataWithSource>, newPointPosition?: Vector3): void;
    clone(): this;
    applyMatrix4(matrix: Matrix4): void;
    boundingBox(target: Box3): void;
    boundingSphere(target: Sphere): void;
}
