import { Kafka, ConsumerConfig } from 'kafkajs';
import { IAction, ActionObserver } from './types';
import { TopicAdministrator } from './topic_administrator';
export declare class ConsumerPool {
    private kafka;
    private rootTopic;
    private consumerConfig;
    private topicAdministrator;
    private consumers;
    private observersByTransaction;
    constructor(kafka: Kafka, rootTopic: string, consumerConfig?: Omit<ConsumerConfig, 'groupId' | 'allowAutoTopicCreation'>, topicAdministrator?: TopicAdministrator);
    streamActionsFromTopic(topic: string): Promise<void>;
    disconnectConsumers(): Promise<void>;
    startTransaction(transactionId: string): void;
    stopTransaction(transactionId: string): void;
    registerTopicObserver({ transactionId, topic, observer }: {
        transactionId: string;
        topic: string;
        observer: ActionObserver<IAction>;
    }): void;
    private broadcastAction;
}
