import { MessageManager, Producer, ProducibleMessage } from 'redis-smq';
export declare class MessagesService {
    protected messageManager: {
        getMessageStatusAsync: ((messageId: string) => Promise<import("redis-smq").EMessagePropertyStatus.NEW>) | ((messageId: string) => Promise<import("redis-smq").EMessagePropertyStatus.PENDING>) | ((messageId: string) => Promise<import("redis-smq").EMessagePropertyStatus.PROCESSING>) | ((messageId: string) => Promise<import("redis-smq").EMessagePropertyStatus.SCHEDULED>) | ((messageId: string) => Promise<import("redis-smq").EMessagePropertyStatus.ACKNOWLEDGED>) | ((messageId: string) => Promise<import("redis-smq").EMessagePropertyStatus.UNACK_REQUEUING>) | ((messageId: string) => Promise<import("redis-smq").EMessagePropertyStatus.UNACK_DELAYING>) | ((messageId: string) => Promise<import("redis-smq").EMessagePropertyStatus.DEAD_LETTERED>);
        getMessageStateAsync: (messageId: string) => Promise<import("redis-smq").IMessageStateTransferable>;
        getMessagesByIdsAsync: (messageIds: string[]) => Promise<import("redis-smq").IMessageTransferable<unknown>[]>;
        getMessageByIdAsync: (messageId: string) => Promise<import("redis-smq").IMessageTransferable<unknown>>;
        deleteMessagesByIdsAsync: (ids: string[]) => Promise<import("redis-smq").IMessageManagerDeleteResponse>;
        deleteMessageByIdAsync: (id: string) => Promise<import("redis-smq").IMessageManagerDeleteResponse>;
        requeueMessageByIdAsync: (messageId: string) => Promise<string>;
    } & MessageManager;
    protected producer: {
        produceAsync: (msg: ProducibleMessage) => Promise<string[]>;
        runAsync: (() => Promise<false>) | (() => Promise<true>);
        shutdownAsync: (() => Promise<undefined>) | (() => Promise<void>);
        onAsync: ((event: keyof import("redis-smq").TProducerEvent) => Promise<undefined>) | ((event: keyof import("redis-smq").TProducerEvent) => Promise<string>) | ((event: keyof import("redis-smq").TProducerEvent) => Promise<import("redis-smq").IQueueParsedParams>);
        onceAsync: ((event: keyof import("redis-smq").TProducerEvent) => Promise<undefined>) | ((event: keyof import("redis-smq").TProducerEvent) => Promise<string>) | ((event: keyof import("redis-smq").TProducerEvent) => Promise<import("redis-smq").IQueueParsedParams>);
        removeListenerAsync: ((event: keyof import("redis-smq").TProducerEvent) => Promise<undefined>) | ((event: keyof import("redis-smq").TProducerEvent) => Promise<string>) | ((event: keyof import("redis-smq").TProducerEvent) => Promise<import("redis-smq").IQueueParsedParams>);
    } & Producer;
    constructor(messageManager: MessageManager, producer: Producer);
    getMessagesByIds(messageIds: string[]): Promise<import("redis-smq").IMessageTransferable<unknown>[]>;
    getMessageById(messageId: string): Promise<import("redis-smq").IMessageTransferable<unknown>>;
    requeueMessageById(messageId: string): Promise<string>;
    deleteMessageById(messageId: string): Promise<import("redis-smq").IMessageManagerDeleteResponse>;
    deleteMessagesByIds(messageIds: string[]): Promise<import("redis-smq").IMessageManagerDeleteResponse>;
    getMessageStatus(messageId: string): Promise<import("redis-smq").EMessagePropertyStatus>;
    publishMessage(message: ProducibleMessage): Promise<string[]>;
}
//# sourceMappingURL=MessagesService.d.ts.map