///
///
import { Connection, Channel, Message } from 'amqplib';
import { EventEmitter } from 'events';
import * as Joi from '@hapi/joi';
interface ActorAsJson {
exchange: string;
routingkey: string;
queue: string;
queueOptions: {};
}
interface CreateNewActorParams {
routingkey: string;
queue?: string;
exchange?: string;
connection?: Connection;
channel?: Channel;
prefetch?: number;
schema?: Joi.Schema;
queueOptions?: object;
exchangeType?: string;
}
export interface ActorConnectionParams extends CreateNewActorParams {
exchange: string;
queue: string;
exchangeType: string;
}
export declare class Actor extends EventEmitter {
connection?: Connection | null;
channel?: Channel | null;
actorParams: ActorConnectionParams;
consumerTag?: string;
schema?: Joi.Schema;
validateSchema?: any;
heartbeatMilliseconds: number;
heartbeatInterval: any;
toJSON(): ActorAsJson;
connectAmqp(connection?: any): Promise;
constructor(params: CreateNewActorParams);
static create(connectionInfo: CreateNewActorParams): Actor;
defaultConsumer(channel: Channel, msg: Message, json?: any): Promise;
stop(): Promise;
start(consumer?: (channel: any, msg: any, json?: any) => Promise): Promise;
}
export {};
//# sourceMappingURL=actor.d.ts.map