export interface QueueTask<T> {
    func(item: T): Promise<void>;
}
export declare class Queue<T> implements Iterable<T> {
    private items;
    private func;
    private processing;
    enqueue(item: T): void;
    dequeue(): T | undefined;
    peek(): T | undefined;
    get size(): number;
    isEmpty(): boolean;
    clear(): void;
    toArray(): T[];
    assignProcessorFunc(func: (item: T) => Promise<void>): void;
    processAll(): Promise<void>;
    awaiter(): Promise<void>;
    [Symbol.iterator](): Iterator<T>;
}
