/**
 * Circular queue.
 *
 * Circular queue is a queue structure, the main purpose of its design is to
 * reuse space as much as possible on the basis of ordinary queues. Circular
 * queues usually need to specify the maximum volume C of the collector. If the
 * number of elements in the queue exceeds C, only the most recent C elements
 * are kept in the queue. Other operations are the same as ordinary queues.
 */ export interface CircularQueue < T > { param MAX_SIZE init ( MAX_SIZE ) : void ; /**
     * Get the front element of the queue.
     */ front ( ) : T | undefined ; /**
     * Get the end element of the queue.
     */ end ( ) : T | undefined ; /**
     * Popup the front element from the queue.
     */ dequeue ( ) : T | undefined ; param element returns enqueue ( element ) : number ; param idx param strickCheck get ( idx , strickCheck ? ) : T | undefined ; param idx param element set ( idx , element ) : boolean ; param idx isValidIndex ( idx ) : boolean ; /**
     * Get the number of elements in the queue.
     */ size ( ) : number ; /**
     * Whether the queue is empty.
     */ isEmpty ( ) : boolean ; }