import { createLogger, ICallback } from 'redis-smq-common';
import { IBrowserPage, IMessageBrowser } from './message-browser/types/index.js';
import { EBackgroundJobStatus } from '../common/index.js';
import { TQueueExtendedParams } from '../queue-manager/index.js';
import { IMessageTransferable } from '../message/index.js';
import { TPurgeQueueJob } from '../common/background-jobs/jobs/purge-queue/types/index.js';
import { EQueueMessageType } from './types/index.js';
export declare abstract class QueueMessagesAbstract implements IMessageBrowser {
    protected readonly logger: ReturnType<typeof createLogger>;
    abstract readonly messageType: EQueueMessageType;
    constructor();
    protected withMessageBrowser<T>(queue: TQueueExtendedParams, operation: (browser: IMessageBrowser, cb: ICallback<T>) => void, cb: ICallback<T>): void;
    countMessages(queue: TQueueExtendedParams): Promise<number>;
    countMessages(queue: TQueueExtendedParams, cb: ICallback<number>): void;
    getMessageIds(queue: TQueueExtendedParams, page: number, pageSize: number): Promise<IBrowserPage<string>>;
    getMessageIds(queue: TQueueExtendedParams, page: number, pageSize: number, cb: ICallback<IBrowserPage<string>>): void;
    getMessages(queue: TQueueExtendedParams, page: number, pageSize: number): Promise<IBrowserPage<IMessageTransferable>>;
    getMessages(queue: TQueueExtendedParams, page: number, pageSize: number, cb: ICallback<IBrowserPage<IMessageTransferable>>): void;
    purge(queue: TQueueExtendedParams): Promise<string>;
    purge(queue: TQueueExtendedParams, cb: ICallback<string>): void;
    cancelPurge(queue: TQueueExtendedParams, jobId: string): Promise<void>;
    cancelPurge(queue: TQueueExtendedParams, jobId: string, cb: ICallback): void;
    getPurgeJob(queue: TQueueExtendedParams, jobId: string): Promise<TPurgeQueueJob>;
    getPurgeJob(queue: TQueueExtendedParams, jobId: string, cb: ICallback<TPurgeQueueJob>): void;
    getPurgeJobStatus(queue: TQueueExtendedParams, jobId: string): Promise<EBackgroundJobStatus>;
    getPurgeJobStatus(queue: TQueueExtendedParams, jobId: string, cb: ICallback<EBackgroundJobStatus>): void;
}
//# sourceMappingURL=queue-messages-abstract.d.ts.map