import { Message, Producer, ProducibleMessage } from 'redis-smq';
export declare class MessagesService {
    protected message: {
        getMessageStatusAsync: ((messageId: string) => Promise<import("redis-smq").EMessagePropertyStatus.UNPUBLISHED>) | ((messageId: string) => Promise<import("redis-smq").EMessagePropertyStatus.SCHEDULED>) | ((messageId: string) => Promise<import("redis-smq").EMessagePropertyStatus.PENDING>) | ((messageId: string) => Promise<import("redis-smq").EMessagePropertyStatus.PROCESSING>) | ((messageId: string) => Promise<import("redis-smq").EMessagePropertyStatus.ACKNOWLEDGED>) | ((messageId: string) => Promise<import("redis-smq").EMessagePropertyStatus.UNACK_DELAYING>) | ((messageId: string) => Promise<import("redis-smq").EMessagePropertyStatus.UNACK_REQUEUING>) | ((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[]>;
        getMessageByIdAsync: (messageId: string) => Promise<import("redis-smq").IMessageTransferable>;
        deleteMessagesByIdsAsync: (ids: string[]) => Promise<import("redis-smq").IMessageDeleteResponse>;
        deleteMessageByIdAsync: (id: string) => Promise<import("redis-smq").IMessageDeleteResponse>;
        requeueMessageByIdAsync: ((messageId: string) => Promise<undefined>) | ((messageId: string) => Promise<void>);
        shutdownAsync: (() => Promise<undefined>) | (() => Promise<void>);
    } & Message;
    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(message: Message, producer: Producer);
    getMessagesByIds(messageIds: string[]): Promise<import("redis-smq").IMessageTransferable[]>;
    getMessageById(messageId: string): Promise<import("redis-smq").IMessageTransferable>;
    requeueMessageById(messageId: string): Promise<void>;
    deleteMessageById(messageId: string): Promise<import("redis-smq").IMessageDeleteResponse>;
    deleteMessagesByIds(messageIds: string[]): Promise<import("redis-smq").IMessageDeleteResponse>;
    getMessageStatus(messageId: string): Promise<import("redis-smq").EMessagePropertyStatus>;
    publishMessage(message: ProducibleMessage): Promise<string[]>;
}
//# sourceMappingURL=MessagesService.d.ts.map