export default BinaryHeap;
/**
 * Min-Heap implementation with a score function.
 * The data structure is a binary heap where elements are removed in order defined by scoring function
 * @template T
 */
declare class BinaryHeap<T> {
    /**
     * @template T
     * @param {function(el:T):number} scoreFunction
     * @constructor
     */
    constructor(scoreFunction: any);
    /**
     * @private
     * @type {T[]}
     */
    private data;
    /**
     * @private
     * @type {number}
     */
    private length;
    /**
     *
     * @type {function(T): number}
     */
    scoreFunction: (arg0: T_1) => number;
    /**
     * @private
     * @param {number} pos
     */
    private bubbleUp;
    /**
     * @private
     * @param {number} pos
     */
    private bubbleDown;
    /**
     *
     * @return {T}
     */
    pop(): T;
    /**
     *
     * @returns {T|undefined}
     */
    peek(): T | undefined;
    /**
     *
     * @param {T} node
     * @returns {boolean}
     */
    delete(node: T): boolean;
    /**
     * NOTE: Unsafe method, use at your own risk
     * @param {number} i
     */
    deleteByIndex(i: number): void;
    /**
     * Remove all the data from the heap
     */
    clear(): void;
    /**
     *
     * @param {T} node
     * @returns {boolean}
     */
    contains(node: T): boolean;
    /**
     *
     * @returns {boolean}
     */
    isEmpty(): boolean;
    /**
     *
     * @returns {number}
     */
    size(): number;
    /**
     *
     * @param {T} node
     * @returns {boolean} false if element is not found, true otherwise
     */
    updateElementScore(node: T): boolean;
    /**
     *
     * @param {T} el
     */
    push(el: T): void;
    /**
     * Useful for type checks
     * @readonly
     * @type {boolean}
     */
    readonly isBinaryHeap: boolean;
}
//# sourceMappingURL=BinaryHeap.d.ts.map