| declare class Queue<ValueType> implements Iterable<ValueType> { | |
| 	/** | |
| 	The size of the queue. | |
| 	*/ | |
| 	readonly size: number; | |
| 
 | |
| 	/** | |
| 	Tiny queue data structure. | |
|  | |
| 	The instance is an [`Iterable`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols), which means you can iterate over the queue front to back with a “for…of” loop, or use spreading to convert the queue to an array. Don't do this unless you really need to though, since it's slow. | |
|  | |
| 	@example | |
| 	``` | |
| 	import Queue = require('yocto-queue'); | |
|  | |
| 	const queue = new Queue(); | |
|  | |
| 	queue.enqueue('🦄'); | |
| 	queue.enqueue('🌈'); | |
|  | |
| 	console.log(queue.size); | |
| 	//=> 2 | |
|  | |
| 	console.log(...queue); | |
| 	//=> '🦄 🌈' | |
|  | |
| 	console.log(queue.dequeue()); | |
| 	//=> '🦄' | |
|  | |
| 	console.log(queue.dequeue()); | |
| 	//=> '🌈' | |
| 	``` | |
| 	*/ | |
| 	constructor(); | |
| 
 | |
| 	[Symbol.iterator](): IterableIterator<ValueType>; | |
| 
 | |
| 	/** | |
| 	Add a value to the queue. | |
| 	*/ | |
| 	enqueue(value: ValueType): void; | |
| 
 | |
| 	/** | |
| 	Remove the next value in the queue. | |
|  | |
| 	@returns The removed value or `undefined` if the queue is empty. | |
| 	*/ | |
| 	dequeue(): ValueType | undefined; | |
| 
 | |
| 	/** | |
| 	Clear the queue. | |
| 	*/ | |
| 	clear(): void; | |
| } | |
| 
 | |
| export = Queue;
 |