import { OnApplicationBootstrap, OnApplicationShutdown } from '@nestjs/common';
import { SeekEntry } from 'kafkajs';
import { KafkaDeserializer } from './deserializer';
import { EmitKafkaEventPayload } from './interfaces';
import { KafkaEventFunctionsService } from './kafka-event-functions.service';
import { KafkaLogger } from './loggers';
import { KafkaModuleConfigurationProvider } from './providers';
import { KafkaSerializer } from './serializer';
export declare class KafkaService implements OnApplicationBootstrap, OnApplicationShutdown {
    private readonly kafkaModuleConfigurationProvider;
    private readonly kafkaEventFunctionsService;
    private readonly kafkaLogger;
    private readonly kafkaSerializer;
    private readonly kafkaDeserializer;
    private kafka;
    private producer;
    private consumer;
    private admin;
    private config;
    protected topicOffsets: Map<string, (SeekEntry & {
        high: string;
        low: string;
    })[]>;
    constructor(kafkaModuleConfigurationProvider: KafkaModuleConfigurationProvider, kafkaEventFunctionsService: KafkaEventFunctionsService, kafkaLogger: KafkaLogger, kafkaSerializer: KafkaSerializer, kafkaDeserializer: KafkaDeserializer);
    private connectToKafka;
    private connectToSchemaRegistry;
    private disconnect;
    onApplicationBootstrap(): Promise<void>;
    onApplicationShutdown(): Promise<void>;
    private fetchTopicOffsets;
    private subscribeToTopics;
    private bindEventHandlers;
    emit<V, K>(payload: EmitKafkaEventPayload<V, K> | EmitKafkaEventPayload<V, K>[], failSilent?: boolean): Promise<void>;
}
