import { DiscoveryService, MetadataScanner } from '@nestjs/core';
import { EachMessagePayload, KafkaConfig } from 'kafkajs';
import { OnModuleDestroy, OnModuleInit } from '@nestjs/common';
import { KafkaConsumerOptions } from '../decorators/kafka.decorator';
import { KafkaMetadataAccessor } from './kafka-metadata.accessor';
export declare class KafkaExplorer implements OnModuleInit, OnModuleDestroy {
    private readonly discoveryService;
    private readonly metadataScanner;
    private readonly metadataAccessor;
    private readonly options;
    private readonly logger;
    private readonly kafka;
    private readonly consumers;
    private initialized;
    constructor(discoveryService: DiscoveryService, metadataScanner: MetadataScanner, metadataAccessor: KafkaMetadataAccessor, options: KafkaConfig);
    private ensureTopicExists;
    onModuleInit(): Promise<void>;
    onModuleDestroy(): Promise<void>;
    explore(): Promise<void>;
    bindConsumer(options: KafkaConsumerOptions, handler: (message: any, payload?: EachMessagePayload) => Promise<void>): Promise<void>;
    destroy(): Promise<void>;
}
