import { PhysicsObject } from './object'; import { Vec3 } from './vec3'; export declare class Octree { private dimensions; private maxObjects; private maxLevels; root: OcTreeNode; constructor(dimensions: Vec3, maxObjects?: number, maxLevels?: number); insert(obj: PhysicsObject): void; find(position: Vec3, dimensions: Vec3): PhysicsObject[]; } export declare class OcTreeNode { private position; private dimensions; private maxLevels; private maxObjects; private currentLevel; objects: PhysicsObject[]; nodes: OcTreeNode[]; constructor(position: Vec3, dimensions: Vec3, maxLevels: number, maxObjects: number, currentLevel?: number); insert(obj: PhysicsObject): any; find(x: number, y: number, z: number, xw: number, yh: number, zd: number): PhysicsObject[]; split(): void; private distributeObjectsToNodes; getIndex(x: number, y: number, z: number): Direction; getIndeciesForRect(x: number, y: number, z: number, xw: number, yh: number, zd: number): Direction[]; } declare enum Direction { AboveUpperLeft = 0, AboveUpperRight = 1, AboveLowerRight = 2, AboveLowerLeft = 3, BelowUpperLeft = 4, BelowUpperRight = 5, BelowLowerRight = 6, BelowLowerLeft = 7, Here = 8 } export {};