/**
 * A simple queue with optional priority.
 */
export declare class Queue extends Object {
    /**
     * Queue data.
     */
    private _queue_;
    constructor();
    /**
     * Get size of queue.
     *
     * @returns Total callbacks in queue.
     */
    get size(): number;
    /**
     * Clear queue.
     */
    clear(): void;
    /**
     * Enqueue callback.
     *
     * @param handler Callback function.
     * @param priority Callback priority.
     */
    push(handler: () => Promise<any>, priority?: number): void;
    /**
     * Pop callback off queue.
     *
     * @returns Callback function or null if empty.
     */
    pop(): (() => Promise<any>) | null;
    /**
     * Shift callback off queue.
     *
     * @returns Callback function or null if empty.
     */
    shift(): (() => Promise<any>) | null;
    /**
     * Run queue.
     */
    run(): Promise<void>;
}
