export declare function defaultCompare(a: T, b: T): number; export declare type Comparator = (a: T, b: T) => number; export declare type IndexObserver = (t: T, newIndex: number) => void; export declare class PriorityQueue { private comparator; private indexObserver; private heap; constructor(comparator: Comparator, indexObserver?: IndexObserver); enqueue(t: T): void; dequeue(): T; update(newT: T, index: number): void; empty(): boolean; private onIndexChanged(t, newIndex); private getParentIndex(index); private getLeftChildIndex(index); private getRightChildIndex(index); private siftUpIndex(index); private siftUp(index); private siftDownIndex(index); private siftDown(index); private compare(aIndex, bIndex); private swap(a, b); }