import { LatLng } from "../types/coordinate.types"; import { RouteSegment, RoutePointWithRadius, GridCell, SpatialBounds } from "../types/spatial.types"; import { Radius } from "../types/radius.types"; export declare class SpatialGridManager { private static validateLatitude; private static validateLongitude; private static validateCoordinate; private static validateRadius; static calculateSegmentBounds(startPoint: LatLng, endPoint: LatLng): SpatialBounds; static calculatePointBounds(centerPoint: LatLng, searchRadius: Radius): SpatialBounds; static buildSegmentSpatialIndex(routeSegments: RouteSegment[], searchTolerance: Radius): { spatialIndex: Map; cellSize: number; }; static buildPointSpatialIndex(pointsWithRadius: RoutePointWithRadius[]): { spatialIndex: Map; cellSize: number; }; static findNearbySegments(spatialGridConfig: { grid: Map; cellSize: number; }, searchPoint: LatLng, searchRadius: Radius): RouteSegment[]; static findNearbyPoints(spatialGridConfig: { grid: Map; cellSize: number; }, searchPoint: LatLng, searchRadius: Radius): RoutePointWithRadius[]; static generateGridCellsForBounds(bounds: SpatialBounds, cellSize: number): GridCell[]; static getCellKeyForPoint(point: LatLng, cellSize: number): string; static getAdjacentCellKeys(centerCell: GridCell): GridCell[]; static getAdjacentGridCells(centerCell: GridCell): GridCell[]; }