export declare type ComparatorFn = (a: any, b: any) => number; export declare class PriorityQueue { private heap; private compare; /** * Initializes a PriorityQueue class with given comparator function * @param {Function} comparator comparator function to compare heap entries */ constructor(comparator?: ComparatorFn); /** * Returns index of parent node * @param {number} index arbitrary index * @returns {number} index of parent node */ private parent; /** * Returns index of the left child * @param {number} index arbitrary index * @returns {number} index of left child */ private left; /** * Returns index of the rigth child * @param {number} index arbitrary index * @returns {number} index of right child */ private right; /** * Returns true if node has left child * @param {number} index arbitrary index * @returns {boolean} whether node has left child */ private hasLeft; /** * Returns true if node has right child * @param {number} index arbitrary index * @returns {boolean} whether node has right child */ private hasRight; /** * Swaps two elements at given indices * @param {number} i first index * @param {number} j second index * @returns {void} */ private swap; /** * Moves property at index to higher to restore heap property * @param {number} index arbitrary index * @returns {void} */ private upheap; /** * Moves property at index to lower to restore heap property * @param {number} index arbitrary index * @returns {void} */ private downheap; /** * Returns the heap size * @returns {number} size of the heap */ size(): number; /** * Returns true if heap size is zero, false otherwise * @returns {boolean} true if heap is empty */ isEmpty(): boolean; /** * Returns top element from the heap * @returns {T} the top element */ peek(): T; /** * Inserts new value to the heap * @param {T} element value to insert * @returns {T} newly inserted value */ enqueue(element: T): T; /** * Removes top element from top of heap and returns it * @returns {T} top element from the heap */ dequeue(): T; }