export declare class PairingHeap { elem: T; private subheaps; constructor(elem: T); toString(selector: any): string; forEach(f: any): void; count(): number; min(): T; empty(): boolean; contains(h: PairingHeap): boolean; isHeap(lessThan: (a: T, b: T) => boolean): boolean; insert(obj: T, lessThan: any): PairingHeap; merge(heap2: PairingHeap, lessThan: any): PairingHeap; removeMin(lessThan: (a: T, b: T) => boolean): PairingHeap; mergePairs(lessThan: (a: T, b: T) => boolean): PairingHeap; decreaseKey(subheap: PairingHeap, newValue: T, setHeapNode: (e: T, h: PairingHeap) => void, lessThan: (a: T, b: T) => boolean): PairingHeap; } export declare class PriorityQueue { private lessThan; private root; constructor(lessThan: (a: T, b: T) => boolean); top(): T; push(...args: T[]): PairingHeap; empty(): boolean; isHeap(): boolean; forEach(f: any): void; pop(): T; reduceKey(heapNode: PairingHeap, newKey: T, setHeapNode?: (e: T, h: PairingHeap) => void): void; toString(selector: any): string; count(): number; }