export interface PairHeapNode { /** Value */ v: T; /** Siblings */ s: PairHeapNode | undefined; /** Children */ c: PairHeapNode | undefined; } /** * Compare Functions * Compares two values a and b. * Meaning of return value: * `v <= 0`: `a` is ahead of `b` * `v > 0`: `b` is ahead of `a` * @param a - item a * @param b - item b * @returns a number */ export type CompareFn = (a: T, b: T) => number; export declare class PairingHeap implements IterableIterator { readonly compare: CompareFn; private _heap; private _size; constructor(compare: CompareFn); add(v: T): this; dequeue(): T | undefined; concat(i: Iterable): this; next(): IteratorResult; peek(): T | undefined; [Symbol.iterator](): IterableIterator; get length(): number; } declare function insert(compare: CompareFn, heap: PairHeapNode | undefined, v: T): PairHeapNode; declare function merge(compare: CompareFn, a: PairHeapNode, b: PairHeapNode): PairHeapNode; declare function mergeSiblings(compare: CompareFn, n: PairHeapNode): PairHeapNode; export declare const heapMethods: { insert: typeof insert; merge: typeof merge; mergeSiblings: typeof mergeSiblings; }; export {}; //# sourceMappingURL=PairingHeap.d.ts.map