import { ICallback, IRedisClient } from 'redis-smq-common';
import { RedisClient } from '../../../common/redis-client/redis-client.js';
import { redisKeys } from '../../../common/redis-keys/redis-keys.js';
import { IMessageTransferable, Message } from '../../message/index.js';
import { IQueueParsedParams, TQueueExtendedParams } from '../../queue/index.js';
import { QueueMessagesStorage } from '../queue-messages-storage/queue-messages-storage.js';
import { IQueueMessageManager, IQueueMessagesPage, IQueueMessagesPageParams } from '../types/index.js';
export declare abstract class QueueMessagesManagerAbstract implements IQueueMessageManager {
    protected readonly redisClient: RedisClient;
    protected readonly message: Message;
    protected requireGroupId: boolean;
    protected readonly redisKey: keyof ReturnType<typeof redisKeys.getQueueKeys>;
    protected readonly messageStorage: QueueMessagesStorage;
    protected readonly logger: import("redis-smq-common").ILogger;
    protected constructor(redisClient: RedisClient, messagesStorage: QueueMessagesStorage, message: Message, redisKey: keyof ReturnType<typeof redisKeys.getQueueKeys>);
    protected getTotalPages(pageSize: number, totalItems: number): number;
    protected getPaginationParams(cursor: number, totalItems: number, pageSize: number): IQueueMessagesPageParams;
    protected getMessagesIds(queue: IQueueParsedParams, page: number, pageSize: number, cb: ICallback<IQueueMessagesPage<string>>): void;
    purge(queue: TQueueExtendedParams, cb: ICallback<void>): void;
    protected _purgeMessages(client: IRedisClient, parsedParams: IQueueParsedParams, cb: ICallback<void>): void;
    getMessages(queue: TQueueExtendedParams, page: number, pageSize: number, cb: ICallback<IQueueMessagesPage<IMessageTransferable>>): void;
    countMessages(queue: TQueueExtendedParams, cb: ICallback<number>): void;
    shutdown(cb: ICallback<void>): void;
}
//# sourceMappingURL=queue-messages-manager-abstract.d.ts.map