import { BucketName, CollectionName, CouchbaseClusterTypes, DocDefMatchingBody, ScopeName } from '@cbjsdev/shared'; import type { Collection } from '../../../collection.js'; import { type NodeCallback, type VoidNodeCallback } from '../../../utilities.js'; /** * CouchbaseQueue provides a simplified interface for storing a queue * within a Couchbase document. * * @see {@link Collection.queue} * @category Datastructures */ export declare class CouchbaseQueue, S extends ScopeName, C extends CollectionName, Key extends DocDefMatchingBody, T, B, S, C>['Key'], Item> { private _coll; private _key; /** * @internal */ constructor(collection: Collection, key: Key); /** * Returns the number of items in the queue. * * @param callback A node-style callback to be invoked after execution. */ size(callback?: NodeCallback): Promise; /** * Adds a new item to the back of the queue. * * @param value The value to add. * @param callback A node-style callback to be invoked after execution. */ push(value: Item, callback?: VoidNodeCallback): Promise; /** * Removes an item from the front of the queue. * * @param callback A node-style callback to be invoked after execution. */ pop(callback?: NodeCallback): Promise; }