import { LinkedList } from './linked-list'; export declare class Queue { protected _list: LinkedList; /** * Adds a value to the end of the queue. * * @param value The value to add to the queue. * * @timeComplexity `O(1)` */ enqueue(value: T): void; /** * Removes and returns the value at the front of the queue. * * @timeComplexity `O(1)` * * @returns The value at the front of the queue or undefined if the queue * is empty. */ dequeue(): T | void; /** * Returns the value at the front of the queue without removing it. * * @timeComplexity `O(1)` * * @returns The value at the front of the queue or undefined if the queue * is empty. */ front(): T | void; /** * Returns the value at the back of the queue without removing it. * * @timeComplexity `O(1)` * * @returns The value at the back of the queue or undefined if the queue * is empty. */ back(): T | undefined; /** * Returns the number of elements in the queue. * * @timeComplexity `O(1)` * * @returns The number of elements in the queue. */ size(): number; /** * Returns true if the queue is empty, false otherwise. * * @timeComplexity `O(1)` * * @returns True if the queue is empty, false otherwise. */ isEmpty(): boolean; /** * Removes all elements from the queue. * * @timeComplexity `O(1)` */ clear(): void; /** * Creates a copy of the queue. * * @timeComplexity `O(n)` */ clone(): Queue; /** * Converts the queue to an array. * * @timeComplexity `O(n)` * * @returns An array containing all the values in the queue. */ toArray(): T[]; /** * Creates a queue from an array of values. * * @timeComplexity `O(n)` */ static fromArray(array: T[]): Queue; values(): IterableIterator; [Symbol.iterator](): IterableIterator; }