import { AbstractMessageStorage } from './abstract-message-storage';
import { TPaginatedResponse } from '../../../../types';
import { Message } from '../../message/message';
import { ICallback } from 'redis-smq-common/dist/types';
declare type TFetchMessagesReply = {
    sequenceId: number;
    message: Message;
};
declare type TListKeyMessagesParams = {
    keyMessages: string;
};
declare type TListMessageIdParams = {
    messageId: string;
    sequenceId: number;
};
export declare abstract class ListMessageStorage extends AbstractMessageStorage<TListKeyMessagesParams, TListMessageIdParams> {
    protected getMessageById(key: TListKeyMessagesParams, id: TListMessageIdParams, cb: ICallback<Message>): void;
    protected requeueMessage(key: TListKeyMessagesParams, id: TListMessageIdParams, cb: ICallback<void>): void;
    protected deleteMessage(key: TListKeyMessagesParams, id: TListMessageIdParams, cb: ICallback<void>): void;
    protected fetchMessages(key: TListKeyMessagesParams, skip: number, take: number, cb: ICallback<TPaginatedResponse<TFetchMessagesReply>>): void;
    protected purgeMessages(key: TListKeyMessagesParams, cb: ICallback<void>): void;
    protected countMessages(key: TListKeyMessagesParams, cb: ICallback<number>): void;
}
export {};
