import { Point } from "./Point"; import { Box } from "./Box"; declare type PointsComparator = (point1: T, point2: T) => boolean; interface QuadTreeConfig { capacity?: number; removeEmptyNodes?: boolean; maximumDepth?: number | -1; arePointsEqual?: PointsComparator; } interface Shape { contains(point: Point): boolean; intersects(range: Box): boolean; } declare type DeepRequired = T extends Function ? T : (T extends object ? { [P in keyof Required]: DeepRequired; } : NonNullable>); declare type QuadTreeConfigComplete = DeepRequired; declare type Tree = number | { ne: number | Tree; nw: number | Tree; se: number | Tree; sw: number | Tree; }; declare type UserCustomData = any; export { QuadTreeConfig, QuadTreeConfigComplete, Shape, Tree, UserCustomData }; //# sourceMappingURL=types.d.ts.map