export const QT_NULL_POINTER: number;
/**
 *
 *  NOTE: THIS CODE IS UNFINISHED, IT IS ONLY A SKETCH
 *  TODO finish implementation
 */
export class QuadTree {
    /**
     * Parameters allow us to set initial bounds to prevent early resizing
     * @param {number} x0
     * @param {number} y0
     * @param {number} x1
     * @param {number} y1
     */
    constructor(x0?: number, y0?: number, x1?: number, y1?: number);
    get root(): number;
    /**
     * Resize dimensions of the tree to tightly fit all inserted elements
     */
    shrink(): void;
    /**
     *
     * @param {number[]|Float32Array} output
     */
    compute_tight_bounds(output: number[] | Float32Array): void;
    /**
     * Rebuild tree but keep all the data
     */
    rebuild(): void;
    /**
     *
     * @returns {number} ID of data in the tree
     */
    element_allocate(): number;
    /**
     *
     * @param {number} element
     * @param {number}  user_data
     */
    element_set_user_data(element: number, user_data: number): void;
    /**
     *
     * @param {number} element
     * @return {number}
     */
    element_get_user_data(element: number): number;
    /**
     *
     * @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
     * @return {number} next element in the node
     */
    element_get_next(element: number): number;
    /**
     *
     * @param {number} x0
     * @param {number} y0
     * @param {number} x1
     * @param {number} y1
     */
    ensure_bounds(x0: number, y0: number, x1: number, y1: number): void;
    /**
     * Assumes element is allocated and is not present in the tree yet
     * @param {number} element
     */
    element_insert(element: number): void;
    /**
     *
     * @param {number} node
     * @param {number[]|Uint32Array} destination
     * @param {number} destination_offset
     * @return {number} number of elements read
     */
    node_read_elements(node: number, destination: number[] | Uint32Array, destination_offset: number): number;
    /**
     *
     * @param {number} datum_id ID of data in tree
     */
    element_remove(datum_id: number): void;
    /**
     * Remove all data
     */
    release_all(): void;
    #private;
}
//# sourceMappingURL=QuadTree.d.ts.map