import { ConsumerGroups, IQueueParams, QueuePendingMessages } from 'redis-smq';
export declare class ConsumerGroupsService {
    protected consumerGroups: {
        saveConsumerGroupAsync: (queue: string | IQueueParams, groupId: string) => Promise<number>;
        deleteConsumerGroupAsync: ((queue: string | IQueueParams, groupId: string) => Promise<undefined>) | ((queue: string | IQueueParams, groupId: string) => Promise<void>);
        getConsumerGroupsAsync: (queue: string | IQueueParams) => Promise<string[]>;
        shutdownAsync: (() => Promise<undefined>) | (() => Promise<void>);
    } & ConsumerGroups;
    protected queuePendingMessages: {
        countMessagesAsync: (queue: import("redis-smq").TQueueExtendedParams) => Promise<number>;
        getMessagesAsync: (queue: import("redis-smq").TQueueExtendedParams, page: number, pageSize: number) => Promise<import("redis-smq").IQueueMessagesPage<import("redis-smq").IMessageTransferable>>;
        purgeAsync: ((queue: import("redis-smq").TQueueExtendedParams) => Promise<undefined>) | ((queue: import("redis-smq").TQueueExtendedParams) => Promise<void>);
        shutdownAsync: (() => Promise<undefined>) | (() => Promise<void>);
    } & QueuePendingMessages;
    constructor(consumerGroups: ConsumerGroups, queuePendingMessages: QueuePendingMessages);
    deleteConsumerGroup(queueParams: IQueueParams, consumerGroupId: string): Promise<void>;
    getConsumerGroups(queueParams: IQueueParams): Promise<string[]>;
    saveConsumerGroup(queueParams: IQueueParams, consumerGroupId: string): Promise<void>;
    getPendingMessages(queueParams: IQueueParams, consumerGroupId: string, cursor: number, pageSize: number): Promise<import("redis-smq").IQueueMessagesPage<import("redis-smq").IMessageTransferable>>;
    countPendingMessages(queueParams: IQueueParams, consumerGroupId: string): Promise<number>;
    purgePendingMessages(queueParams: IQueueParams, consumerGroupId: string): Promise<void>;
}
//# sourceMappingURL=ConsumerGroupsService.d.ts.map