import * as THREE from 'three';
import { CubeFace } from '../types/cube';
interface TileCubeTree {
    maxLevel: number;
    children: TileCubeNode[];
}
interface TileCubeNode {
    level: number;
    face: CubeFace;
    position: THREE.Vector2;
    size: number;
    box: THREE.Box3;
    parent: TileCubeNode | null;
    children: TileCubeNode[];
}
declare function createTileCubeTree(level: number): TileCubeTree;
declare function traverseTileCubeNode(nodeOrTree: TileCubeTree | TileCubeNode, callback: (node: TileCubeNode) => false | void): void;
export { createTileCubeTree, traverseTileCubeNode };
export type { TileCubeTree, TileCubeNode };
