import { OnApplicationBootstrap, OnApplicationShutdown } from '@nestjs/common';
import { KafkaEventFunctionsService } from './kafka-event-functions.service';
import { KafkaModuleConfigurationProvider } from './providers';
import { KafkaLogger } from './loggers';
import { SeekEntry } from 'kafkajs';
import { KafkaAvroSerializer } from './serializer';
import { KafkaAvroDeserializer } from './deserializer';
import { EmitKafkaEventPayload } from './interfaces';
export declare class KafkaService implements OnApplicationBootstrap, OnApplicationShutdown {
    private readonly kafkaModuleConfigurationProvider;
    private readonly kafkaEventFunctionsService;
    private readonly kafkaLogger;
    private readonly kafkaAvroSerializer;
    private readonly kafkaAvroDeserializer;
    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, kafkaAvroSerializer: KafkaAvroSerializer, kafkaAvroDeserializer: KafkaAvroDeserializer);
    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>;
}
