/**
 * Wraps {@link fetch} api and adds concurrency management to it by queueing requests,
 * as well as prioritization in that queue
 */
export class PriorityFetch {
    constructor({ adapter, concurrency }: {
        adapter?: typeof noop;
        concurrency?: number;
    });
    /**
     *
     * @type {number}
     * @private
     */
    private __concurrency;
    /**
     *
     * @type {BinaryHeap<FetchRequest>}
     * @private
     */
    private __queue;
    /**
     *
     * @type {Set<FetchRequest>}
     * @private
     */
    private __pending_set;
    /**
     *
     * @type {null}
     * @private
     */
    private __adapter;
    /**
     *
     * @param {function} v
     */
    set adapter(arg: Function);
    /**
     *
     * @param {number} v
     */
    set concurrency(arg: number);
    /**
     *
     * @return {number}
     */
    get concurrency(): number;
    /**
     *
     * @param {FetchRequest} req
     * @private
     */
    private __dispatch;
    __prod(): void;
    fetch(resource: any, options: any): Promise<any>;
}
import { noop } from "../../core/function/noop.js";
//# sourceMappingURL=PriorityFetch.d.ts.map