/** * QuadTree - Spatial partitioning data structure for Barnes-Hut algorithm * Divides 2D space into quadrants for efficient force calculations */ export interface QuadTreeNode { x: number; y: number; mass: number; centerX: number; centerY: number; } export declare class QuadTree { private boundary; private capacity; private nodes; private divided; private northwest?; private northeast?; private southwest?; private southeast?; private totalMass; private centerOfMassX; private centerOfMassY; constructor(x: number, y: number, width: number, height: number); /** * Insert a node into the quadtree */ insert(node: QuadTreeNode): boolean; /** * Subdivide this quadrant into four children */ private subdivide; /** * Check if a point is within this quadrant's boundary */ private contains; /** * Calculate force on a node using Barnes-Hut approximation * theta: determines accuracy vs speed tradeoff (typical: 0.5) */ calculateForce(node: QuadTreeNode, theta?: number, repulsionStrength?: number): { fx: number; fy: number; }; /** * Get all nodes in this quadtree (for debugging) */ getAllNodes(): QuadTreeNode[]; /** * Get center of mass (for debugging) */ getCenterOfMass(): { x: number; y: number; mass: number; }; }