/// import { EventEmitter } from 'events'; import { QueueBaseOptions, RedisClient } from '../interfaces'; import { MinimalQueue } from '../types'; import { RedisConnection } from './redis-connection'; import { Job } from './job'; import { KeysMap } from './queue-keys'; import { Scripts } from './scripts'; /** * @class QueueBase * @extends EventEmitter * * @description Base class for all classes that need to interact with queues. * This class is normally not used directly, but extended by the other classes. * */ export declare class QueueBase extends EventEmitter implements MinimalQueue { readonly name: string; opts: QueueBaseOptions; toKey: (type: string) => string; keys: KeysMap; closing: Promise | undefined; protected closed: boolean; protected scripts: Scripts; protected connection: RedisConnection; readonly qualifiedName: string; /** * * @param name - The name of the queue. * @param opts - Options for the queue. * @param Connection - An optional "Connection" class used to instantiate a Connection. This is useful for * testing with mockups and/or extending the Connection class and passing an alternate implementation. */ constructor(name: string, opts?: QueueBaseOptions, Connection?: typeof RedisConnection); /** * Returns a promise that resolves to a redis client. Normally used only by subclasses. */ get client(): Promise; /** * Returns the version of the Redis instance the client is connected to, */ get redisVersion(): string; /** * Helper to easily extend Job class calls. */ protected get Job(): typeof Job; /** * Emits an event. Normally used by subclasses to emit events. * * @param event - The emitted event. * @param args - * @returns */ emit(event: string | symbol, ...args: any[]): boolean; waitUntilReady(): Promise; protected base64Name(): string; protected clientName(suffix?: string): string; /** * * Closes the connection and returns a promise that resolves when the connection is closed. */ close(): Promise; /** * * Force disconnects a connection. */ disconnect(): Promise; protected checkConnectionError(fn: () => Promise, delayInMs?: number): Promise; }