import { RequestData } from './StorableRequest.js'; import '../_version.js'; export interface UnidentifiedQueueStoreEntry { requestData: RequestData; timestamp: number; id?: number; queueName?: string; metadata?: object; } export interface QueueStoreEntry extends UnidentifiedQueueStoreEntry { id: number; } /** * A class to interact directly an IndexedDB created specifically to save and * retrieve QueueStoreEntries. This class encapsulates all the schema details * to store the representation of a Queue. * * @private */ export declare class QueueDb { private _db; /** * Add QueueStoreEntry to underlying db. * * @param {UnidentifiedQueueStoreEntry} entry */ addEntry(entry: UnidentifiedQueueStoreEntry): Promise; /** * Returns the first entry id in the ObjectStore. * * @return {number | undefined} */ getFirstEntryId(): Promise; /** * Get all the entries filtered by index * * @param queueName * @return {Promise} */ getAllEntriesByQueueName(queueName: string): Promise; /** * Returns the number of entries filtered by index * * @param queueName * @return {Promise} */ getEntryCountByQueueName(queueName: string): Promise; /** * Deletes a single entry by id. * * @param {number} id the id of the entry to be deleted */ deleteEntry(id: number): Promise; /** * * @param queueName * @returns {Promise} */ getFirstEntryByQueueName(queueName: string): Promise; /** * * @param queueName * @returns {Promise} */ getLastEntryByQueueName(queueName: string): Promise; /** * Returns either the first or the last entries, depending on direction. * Filtered by index. * * @param {IDBCursorDirection} direction * @param {IDBKeyRange} query * @return {Promise} * @private */ getEndEntryFromIndex(query: IDBKeyRange, direction: IDBCursorDirection): Promise; /** * Returns an open connection to the database. * * @private */ private getDb; /** * Upgrades QueueDB * * @param {IDBPDatabase} db * @param {number} oldVersion * @private */ private _upgradeDb; }