///
import { PubSubEngine } from 'graphql-subscriptions/dist/pubsub-engine';
import { IRabbitMqConnectionConfig } from '@groundmuffin/rabbitmq-pub-sub';
import * as Logger from 'bunyan';
export interface PubSubRabbitMQBusOptions {
config?: IRabbitMqConnectionConfig;
connectionListener?: (err: Error) => void;
triggerTransform?: TriggerTransform;
logger?: Logger;
}
export declare class AmqpPubSub implements PubSubEngine {
private consumer;
private producer;
private subscriptionMap;
private subsRefsMap;
private subsConnectionMap;
private currentSubscriptionId;
private triggerTransform;
private unsubscribeChannel;
private logger;
constructor(options?: PubSubRabbitMQBusOptions);
publish(trigger: string, payload: any): boolean;
subscribe(trigger: string, onMessage: Function, options?: Object): Promise;
unsubscribe(subId: number): void;
asyncIterator(triggers: string | string[]): AsyncIterator;
private onMessage(channel, message);
}
export declare type Path = Array;
export declare type Trigger = string | Path;
export declare type TriggerTransform = (trigger: Trigger, channelOptions?: Object) => string;