import { Handle, Storage } from "./storage";
declare class BHPQHandle<T> implements Handle<T> {
    value: T;
    index: number;
    constructor(value: T, index: number);
}
export declare class BinHeapStorage<T> extends Storage<T> {
    private handles;
    private count;
    private emptyIndexes;
    get size(): number;
    get isEmpty(): boolean;
    clear(): void;
    adjust(handle: BHPQHandle<T>): void;
    get top(): BHPQHandle<T>;
    push(value: T): BHPQHandle<T>;
    pop(): BHPQHandle<T>;
    remove(handle: BHPQHandle<T>): BHPQHandle<T>;
    get sortedHandles(): IterableIterator<BHPQHandle<T>>;
    upheap(curr: number): number;
    releaseIndex(index: number): void;
}
export {};
