import { MessageProperties, MessagePropertyHeaders } from 'amqplib'; declare type ActionMessage = Record, Headers extends Record = Record> = { headers: MessagePropertyHeaders & Headers; properties: Omit; payload: Payload; }; declare type Action = Record, Headers extends Record = Record> = (message: ActionMessage, done: Done) => void; interface Task { queue: string; exchange: string; routeKey: string; type?: string; prefetch?: number; queueArguments?: { [x: string]: any; }; options?: { [x: string]: any; }; action: Action; } interface Done { (nack?: any, requeue?: boolean, allUpTo?: boolean): void; } interface TasksOptions { enabled?: boolean; host?: string; } interface TaskSend { (exchange: string, routeKey: string, message: string, options?: any): void; } export declare class Tasks implements TasksOptions { enabled?: boolean; host?: string; ch: any; con: any; running: number; constructor(options: TasksOptions); start(): any; send(exchange: string, routeKey: string, message: string, options?: any): TaskSend; bindTask(task: Task): Promise; } export { TasksOptions, TaskSend, Task, Done, Action };