import { ICallback, ILogger } from 'redis-smq-common';
import { redisKeys } from '../../common/redis/redis-keys/redis-keys.js';
import { IMessageTransferable } from '../../message/index.js';
import { IQueueParsedParams, TQueueExtendedParams } from '../../queue-manager/index.js';
import { IBrowserPage, IMessageBrowser } from './types/index.js';
import { MessageManager } from '../../message-manager/index.js';
import { IBrowserStorage } from './browser-storage/browser-storage-abstract.js';
import { EBackgroundJobStatus } from '../../common/index.js';
import { PurgeQueueJobManager } from '../../common/background-jobs/jobs/purge-queue/purge-queue-job-manager.js';
import { EQueueMessageType } from '../types/index.js';
import { TPurgeQueueJob } from '../../common/background-jobs/jobs/purge-queue/types/index.js';
export declare class MessageBrowser implements IMessageBrowser {
    protected readonly redisKey: keyof ReturnType<typeof redisKeys.getQueueKeys>;
    protected readonly logger: ILogger;
    protected requireGroupId: boolean;
    protected readonly messageManager: MessageManager;
    protected readonly messageStorage: IBrowserStorage;
    readonly messageType: EQueueMessageType;
    constructor(messageManager: MessageManager, messageStorage: IBrowserStorage, messageType: EQueueMessageType, redisKey: keyof ReturnType<typeof redisKeys.getQueueKeys>, requireGroupId: boolean, logger: ILogger);
    private validatePurgeOperation;
    private createPurgeJob;
    private isJobForQueue;
    protected withValidatedQueue<T>(queue: TQueueExtendedParams, operation: (params: IQueueParsedParams, cb: ICallback<T>) => void, cb: ICallback<T>): void;
    protected withPurgeQueueJobManager<T>(operation: (purgeQueueJobManager: PurgeQueueJobManager, cb: ICallback<T>) => void, cb: ICallback<T>): void;
    purge(queue: TQueueExtendedParams, cb: ICallback<string>): void;
    getPurgeJob(queue: TQueueExtendedParams, jobId: string, cb: ICallback<TPurgeQueueJob>): void;
    getPurgeJobStatus(queue: TQueueExtendedParams, jobId: string, cb: ICallback<EBackgroundJobStatus>): void;
    cancelPurge(queue: TQueueExtendedParams, jobId: string, cb: ICallback): void;
    getMessages(queue: TQueueExtendedParams, page: number, pageSize: number, cb: ICallback<IBrowserPage<IMessageTransferable>>): void;
    countMessages(queue: TQueueExtendedParams, cb: ICallback<number>): void;
    getMessageIds(queue: TQueueExtendedParams, page: number, pageSize: number, cb: ICallback<IBrowserPage<string>>): void;
}
//# sourceMappingURL=message-browser.d.ts.map