export interface IQueue<T> {
    size(): number;
    enqueue(item: T): void;
    dequeue(): T | undefined;
}
export declare class Queue<T> implements IQueue<T> {
    private capacity;
    protected storage: T[];
    constructor(capacity?: number);
    size(): number;
    toList(): T[];
    enqueue(item: T): void;
    dequeue(): T | undefined;
    aggregate<R>(aggregationFn: (values: T[]) => R): R;
}
