export const NULL_POINTER: number;
export const COLUMN_ELEMENT_X0: 2;
export const COLUMN_ELEMENT_Y0: 3;
export const COLUMN_ELEMENT_X1: 4;
export const COLUMN_ELEMENT_Y1: 5;
export class SpatialHashGrid {
    constructor(size_x?: number, size_y?: number, scale?: number);
    get size_x(): number;
    get size_y(): number;
    get node_pool(): BinaryElementPool;
    /**
     *
     * @return {BinaryElementPool}
     */
    get element_pool(): BinaryElementPool;
    get scale(): number;
    get scale_inverse(): number;
    element_allocate(): number;
    element_set_user_data(element: any, user_data: any): void;
    element_get_user_data(element: any): number;
    /**
     * You have to remove the element from the grid before changing its bounds
     * @param {number} element
     * @param {number} x0
     * @param {number} y0
     * @param {number} x1
     * @param {number} y1
     */
    element_set_bounds_primitive(element: number, x0: number, y0: number, x1: number, y1: number): void;
    /**
     *
     * @param {number} element
     */
    element_release(element: number): void;
    /**
     *
     * @param {number} element
     */
    element_insert(element: number): void;
    /**
     *
     * @param {number} node
     * @return {number}
     */
    node_get_element(node: number): number;
    /**
     * Next element in the linked list of cell's nodes
     * @param {number} node
     * @return {number}
     */
    node_get_same_cell_next_node(node: number): number;
    /**
     *
     * @param {number} cell_index
     * @return {number}
     */
    cell_get_first_node(cell_index: number): number;
    /**
     *
     * @param {number} x
     * @param {number} y
     * @return {number}
     */
    world_position_to_cell_index(x: number, y: number): number;
    /**
     *
     * @param {number} x
     * @param {number} y
     * @returns {number}
     */
    cell_position_to_index(x: number, y: number): number;
    /**
     *
     * @param {number} cell_x
     * @param {number} cell_y
     * @return {boolean}
     */
    is_cell_empty(cell_x: number, cell_y: number): boolean;
    /**
     *
     * @param {number} element
     */
    element_remove(element: number): void;
    #private;
}
import { BinaryElementPool } from "../../3d/topology/struct/binary/BinaryElementPool.js";
//# sourceMappingURL=SpatialHashGrid.d.ts.map