///
///
declare module goog.structs {
class QuadTree extends QuadTree__Class { }
/** Fake class which should be extended to avoid inheriting static properties */
class QuadTree__Class {
/**
* Constructs a new quad tree.
* @param {number} minX Minimum x-value that can be held in tree.
* @param {number} minY Minimum y-value that can be held in tree.
* @param {number} maxX Maximum x-value that can be held in tree.
* @param {number} maxY Maximum y-value that can be held in tree.
* @constructor
* @final
*/
constructor(minX: number, minY: number, maxX: number, maxY: number);
/**
* Returns a reference to the tree's root node. Callers shouldn't modify nodes,
* directly. This is a convenience for visualization and debugging purposes.
* @return {goog.structs.QuadTree.Node} The root node.
*/
getRootNode(): goog.structs.QuadTree.Node;
/**
* Sets the value of an (x, y) point within the quad-tree.
* @param {number} x The x-coordinate.
* @param {number} y The y-coordinate.
* @param {*} value The value associated with the point.
*/
set(x: number, y: number, value: any): void;
/**
* Gets the value of the point at (x, y) or null if the point is empty.
* @param {number} x The x-coordinate.
* @param {number} y The y-coordinate.
* @param {*=} opt_default The default value to return if the node doesn't
* exist.
* @return {*} The value of the node, the default value if the node
* doesn't exist, or undefined if the node doesn't exist and no default
* has been provided.
*/
get(x: number, y: number, opt_default?: any): any;
/**
* Removes a point from (x, y) if it exists.
* @param {number} x The x-coordinate.
* @param {number} y The y-coordinate.
* @return {*} The value of the node that was removed, or null if the
* node doesn't exist.
*/
remove(x: number, y: number): any;
/**
* Returns true if the point at (x, y) exists in the tree.
* @param {number} x The x-coordinate.
* @param {number} y The y-coordinate.
* @return {boolean} Whether the tree contains a point at (x, y).
*/
contains(x: number, y: number): boolean;
/**
* @return {boolean} Whether the tree is empty.
*/
isEmpty(): boolean;
/**
* @return {number} The number of items in the tree.
*/
getCount(): number;
/**
* Removes all items from the tree.
*/
clear(): void;
/**
* Returns an array containing the coordinates of each point stored in the tree.
* @return {!Array.} Array of coordinates.
*/
getKeys(): goog.math.Coordinate[];
/**
* Returns an array containing all values stored within the tree.
* @return {!Array.