///
/**
* An abstraction of a queue of operations used by the Batch Writer.
*/
export default interface IOperationQueue {
/**
* Places an operation at the tail of the queue.
* If there is already an operation for the same DID, Sidetree Error is thrown with 'code': 'batch_writer_already_has_operation_for_did'.
*/
enqueue(didUniqueSuffix: string, operationBuffer: Buffer): Promise;
/**
* Removes the given count of operation buffers from the beginning of the queue.
*/
dequeue(count: number): Promise;
/**
* Fetches the given count of operation buffers from the beginning of the queue without removing them.
*/
peek(count: number): Promise;
/**
* Checks to see if the queue already contains an operation for the given DID unique suffix.
*/
contains(didUniqueSuffix: string): Promise;
}