namespace System.Collections.Generic;
///
/// Interface for queue implementations.
///
/// Provided type.
public interface IQueue : IEnumerable
{
///
/// Returns the number of items in the queue.
///
int Count { get; }
///
/// Inserts item into the queue.
///
/// Item to be inserted.
void Enqueue(T item);
///
/// Remove the first item in the queue.
///
/// First item in the queue.
T Dequeue();
///
/// Looks up the first item from the queue without removing it.
///
/// First item from the queue.
T Peek();
///
/// Clears the contents of the queue.
///
void Clear();
///
/// Checks if queue contains an item.
///
/// Item to be checked.
/// True if queue contains provided item. False otherwise.
bool Contains(T item);
}