import { PhysicsObject } from './object';
import Vec3 from '../math/vec3';
import Box from "../math/box";
export declare class Octree {
    private dimensions;
    private maxObjects;
    private maxLevels;
    root: OcTreeNode;
    constructor(dimensions: Vec3, maxObjects?: number, maxLevels?: number);
    insert(obj: PhysicsObject): void;
    remove(obj: PhysicsObject): void;
    find(area: Box): PhysicsObject[];
}
export declare class OcTreeNode {
    private boundingBox;
    private maxLevels;
    private maxObjects;
    private currentLevel;
    objects: PhysicsObject[];
    nodes: OcTreeNode[];
    constructor(boundingBox: Box, maxLevels: number, maxObjects: number, currentLevel?: number);
    insert(obj: PhysicsObject): void;
    remove(obj: PhysicsObject): void;
    find(area: Box): PhysicsObject[];
    split(): void;
    private distributeObjectsToNodes;
}
