export interface PairHeapNode { /** Value */ v: T; /** Siblings */ s: PairHeapNode | undefined; /** Children */ c: PairHeapNode | undefined; } 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