import { Channel } from 'amqplib'; import { IPublishOptions } from '..'; export interface IRMQService { init: () => Promise; ack: (...params: Parameters) => ReturnType; nack: (...params: Parameters) => ReturnType; send: (topic: string, message: IMessage, options?: IPublishOptions) => Promise; notify: (topic: string, message: IMessage, options?: IPublishOptions) => Promise; healthCheck: () => boolean; disconnect: () => Promise; mockReply?: (topic: string, reply: T) => void; mockError?: (topic: string, error: T) => void; triggerRoute?: (path: string, data: T) => Promise; }