/**
 * Queue representation
 *
 * @export
 * @class Queue
 * @template T
 */
export declare class Queue<T> {
    private _store;
    /**
     * Creates an instance of Queue.
     * @param {...T[]} defaultValues
     * @memberof Queue
     */
    constructor(...defaultValues: T[]);
    /**
     * Adds a value to the queue
     *
     * @param {...T[]} val
     * @memberof Queue
     */
    enqueue(...val: T[]): void;
    /**
     * Removes the first element from the queue and returns it
     *
     * @return {*}  {(T | undefined)}
     * @memberof Queue
     */
    dequeue(): T | undefined;
    /**
     * Checks if the queue is empty
     *
     * @readonly
     * @type {boolean}
     * @memberof Queue
     */
    get empty(): boolean;
}
