typescript-closure-tools
Version:
Command-line tools to convert closure-style JSDoc annotations to typescript, and to convert typescript sources to closure externs files
198 lines (169 loc) • 7.31 kB
TypeScript
/// <reference path="../../../globals.d.ts" />
/// <reference path="./collection.d.ts" />
declare module goog.structs {
class AvlTree<T> extends AvlTree__Class<T> { }
/** Fake class which should be extended to avoid inheriting static properties */
class AvlTree__Class<T> implements goog.structs.Collection<T> {
/**
* Constructs an AVL-Tree, which uses the specified comparator to order its
* values. The values can be accessed efficiently in their sorted order since
* the tree enforces a O(logn) maximum height.
*
* @param {Function=} opt_comparator Function used to order the tree's nodes.
* @constructor
* @implements {goog.structs.Collection.<T>}
* @final
* @template T
*/
constructor(opt_comparator?: Function);
/**
* Removes all nodes from the tree.
*/
clear(): void;
/**
* Returns a k-th smallest value, based on the comparator, where 0 <= k <
* this.getCount().
* @param {number} k The number k.
* @return {T} The k-th smallest value.
*/
getKthValue(k: number): T;
/**
* Returns the value u, such that u is contained in the tree and u < v, for all
* values v in the tree where v != u.
*
* @return {T} The minimum value contained in the tree.
*/
getMinimum(): T;
/**
* Returns the value u, such that u is contained in the tree and u > v, for all
* values v in the tree where v != u.
*
* @return {T} The maximum value contained in the tree.
*/
getMaximum(): T;
/**
* Returns the height of the tree (the maximum depth). This height should
* always be <= 1.4405*(Math.log(n+2)/Math.log(2))-1.3277, where n is the
* number of nodes in the tree.
*
* @return {number} The height of the tree.
*/
getHeight(): number;
/**
* Inserts the values stored in the tree into a new Array and returns the Array.
*
* @return {!Array.<T>} An array containing all of the trees values in sorted
* order.
*/
getValues(): T[];
/**
* Performs an in-order traversal of the tree and calls {@code func} with each
* traversed node, optionally starting from the smallest node with a value >= to
* the specified start value. The traversal ends after traversing the tree's
* maximum node or when {@code func} returns a value that evaluates to true.
*
* @param {Function} func Function to call on each traversed node.
* @param {Object=} opt_startValue If specified, traversal will begin on the
* node with the smallest value >= opt_startValue.
*/
inOrderTraverse(func: Function, opt_startValue?: Object): void;
/**
* Performs a reverse-order traversal of the tree and calls {@code func} with
* each traversed node, optionally starting from the largest node with a value
* <= to the specified start value. The traversal ends after traversing the
* tree's minimum node or when func returns a value that evaluates to true.
*
* @param {function(T):?} func Function to call on each traversed node.
* @param {Object=} opt_startValue If specified, traversal will begin on the
* node with the largest value <= opt_startValue.
*/
reverseOrderTraverse(func: { (_0: T): any }, opt_startValue?: Object): void;
/**
* @param {T} value Value to add to the collection.
*/
add(value: T): void;
/**
* @param {T} value Value to remove from the collection.
*/
remove(value: T): void;
/**
* @param {T} value Value to find in the collection.
* @return {boolean} Whether the collection contains the specified value.
*/
contains(value: T): boolean;
/**
* @return {number} The number of values stored in the collection.
*/
getCount(): number;
}
}
declare module goog.structs.AvlTree {
class Node<T> extends Node__Class<T> { }
/** Fake class which should be extended to avoid inheriting static properties */
class Node__Class<T> {
/**
* Constructs an AVL-Tree node with the specified value. If no parent is
* specified, the node's parent is assumed to be null. The node's height
* defaults to 1 and its children default to null.
*
* @param {T} value Value to store in the node.
* @param {goog.structs.AvlTree.Node.<T>=} opt_parent Optional parent node.
* @constructor
* @final
* @template T
*/
constructor(value: T, opt_parent?: goog.structs.AvlTree.Node<T>);
/**
* The value stored by the node.
*
* @type {T}
*/
value: T;
/**
* The node's parent. Null if the node is the root.
*
* @type {goog.structs.AvlTree.Node.<T>}
*/
parent: goog.structs.AvlTree.Node<T>;
/**
* The number of nodes in the subtree rooted at this node.
*
* @type {number}
*/
count: number;
/**
* The node's left child. Null if the node does not have a left child.
*
* @type {?goog.structs.AvlTree.Node.<T>}
*/
left: goog.structs.AvlTree.Node<T>;
/**
* The node's right child. Null if the node does not have a right child.
*
* @type {?goog.structs.AvlTree.Node.<T>}
*/
right: goog.structs.AvlTree.Node<T>;
/**
* The height of the tree rooted at this node.
*
* @type {number}
*/
height: number;
/**
* Returns true iff the specified node has a parent and is the right child of
* its parent.
*
* @return {boolean} Whether the specified node has a parent and is the right
* child of its parent.
*/
isRightChild(): boolean;
/**
* Returns true iff the specified node has a parent and is the left child of
* its parent.
*
* @return {boolean} Whether the specified node has a parent and is the left
* child of its parent.
*/
isLeftChild(): boolean;
}
}