/**
 * A queue abstraction for tasks that may require a delayed execution
 */
export interface Queue {
    /**
     * Run a task once the queue is cleared
     * @param f A function that will be executed once the queue is useable
     * @return A promise that wraps the value returned by f
     */
    queue<T>(f: () => Promise<T>): Promise<T>;
}
/**
 * A sized queue that adds a delay between the end of an item's execution.
 *
 * Use only with async code, multi-threading is not supported.
 */
export declare class TailHeadQueue implements Queue {
    private queue_list;
    private queue_size;
    private queue_period;
    private allowance;
    private last_end;
    /**
     * @param size The number of items that may run concurrently
     * @param period The time between the end of the execution of an item and the start of the execution of the next one (ms)
     */
    constructor(size: any, period: any);
    /**
     * Validate the execution of a queue item and schedule the execution of the next one
     */
    _on_settled(): void;
    queue<T>(f: () => Promise<T>): Promise<T>;
}
