import amqp from 'amqplib';
import { type PubSubEngine } from 'graphql-subscriptions';
import { PubSubAsyncIterableIterator } from 'graphql-subscriptions/dist/pubsub-async-iterable-iterator';
import { PubSubAMQPConfig } from './amqp/interfaces';
export declare class AMQPPubSub implements PubSubEngine {
    private publisher;
    private subscriber;
    private exchange;
    private subscriptionMap;
    private subsRefsMap;
    private unsubscribeMap;
    private currentSubscriptionId;
    constructor(config: PubSubAMQPConfig);
    publish(routingKey: string, payload: any, options?: amqp.Options.Publish): Promise<void>;
    subscribe(routingKey: string, onMessage: (content: any, message?: amqp.ConsumeMessage | null) => void, arguments_?: any, options?: amqp.Options.Consume): Promise<number>;
    unsubscribe(subId: number): Promise<void>;
    asyncIterableIterator<T>(triggers: string | string[]): PubSubAsyncIterableIterator<T>;
    private onMessage;
    private unsubscribeForKey;
}
