/// <reference types="node" />
import { PubSubEngine } from 'graphql-subscriptions';
import { Message } from 'kafkajs';
import { KafkaPubSubConfig } from './kafka-pub-sub-config';
export declare class KafkaPubSub extends PubSubEngine {
    private config;
    private kafka;
    private producer?;
    private consumer?;
    private subscriptionMap;
    private subscriptionRefCount;
    private subscriptions;
    private idGenerator;
    private log?;
    constructor(config: KafkaPubSubConfig);
    publish(triggerName: string, payload: Message | Buffer | string): Promise<void>;
    subscribe(triggerName: string, onMessage: Function, options?: {
        fromBeginning?: boolean;
    }): Promise<number>;
    asyncIterator<T>(triggers: string | string[], options?: Object): AsyncIterator<T>;
    unsubscribe(subscriptionId: number): void;
    private createProducer;
    private createConsumer;
    private connectConsumer;
    private static subscriptionIdGenerator;
}
