package java.util;
import checkers.igj.quals.*;
@I
public interface Deque<E> extends @I Queue<E> {
public abstract void addFirst(E a1) @Mutable;
public abstract void addLast(E a1) @Mutable;
public abstract boolean offerFirst(E a1) @Mutable;
public abstract boolean offerLast(E a1) @Mutable;
public abstract E removeFirst() @Mutable;
public abstract E removeLast() @Mutable;
public abstract E pollFirst() @Mutable;
public abstract E pollLast() @Mutable;
public abstract E getFirst() @ReadOnly;
public abstract E getLast() @ReadOnly;
public abstract E peekFirst() @ReadOnly;
public abstract E peekLast() @ReadOnly;
public abstract boolean removeFirstOccurrence(@ReadOnly Object a1) @Mutable;
public abstract boolean removeLastOccurrence(@ReadOnly Object a1) @Mutable;
public abstract boolean add(E a1) @Mutable;
public abstract boolean offer(E a1) @Mutable;
public abstract E remove() @Mutable;
public abstract E poll() @Mutable;
public abstract E element() @ReadOnly;
public abstract E peek() @ReadOnly;
public abstract void push(E a1) @Mutable;
public abstract E pop() @Mutable;
public abstract boolean remove(@ReadOnly Object a1) @Mutable;
public abstract boolean contains(@ReadOnly Object a1) @ReadOnly;
public abstract int size() @ReadOnly;
public abstract @I Iterator<E> iterator() @ReadOnly;
public abstract @I Iterator<E> descendingIterator() @ReadOnly;
}