import { Box3, Sphere } from 'three';
import { BaseCorePoint } from '../../geometry/entities/point/CorePoint';
export type OctreeNodeTraverseCallback = (node: OctreeNode) => void;
export declare class OctreeNode {
    private _bbox;
    private _level;
    private _leavesByOctant;
    private _pointsByOctantId;
    private _leaves;
    private _center;
    private _boundingBoxesByOctant;
    private _boundingBoxesByOctantPrepared;
    constructor(_bbox: Box3, _level?: number);
    level(): number;
    traverse(callback: OctreeNodeTraverseCallback): void;
    intersectsSphere(sphere: Sphere): boolean;
    pointsInSphere(sphere: Sphere, accumulatedPoints: BaseCorePoint[]): void;
    boundingBox(): Box3 | undefined;
    setPoints(points: BaseCorePoint[]): void;
    createLeaf(octantId: string): void;
    addPoint(point: BaseCorePoint): void;
    private _octantId;
    private _leafBbox;
    private _bboxCenter;
    private _prepareLeavesBboxes;
}
