import { AbstractClientService } from '@joktec/core';
import { Kafka, Message } from 'kafkajs';
import { KafkaClient } from './kafka.client';
import { KafkaConfig } from './kafka.config';
import { KafkaMetricService } from './kafka.metric';
import { KafkaBatchMessage, KafkaConsumeOptions, KafkaEachMessage, KafkaProduceBatch, KafkaProduceBatchOptions, KafkaProducerOptions } from './models';
export declare class KafkaService extends AbstractClientService<KafkaConfig, Kafka> implements KafkaClient {
    private kafkaMetricService;
    private props;
    constructor(kafkaMetricService: KafkaMetricService);
    protected init(config: KafkaConfig): Promise<Kafka>;
    protected start(client: Kafka, conId?: string): Promise<void>;
    protected stop(client: Kafka, conId?: string): Promise<void>;
    private initProducer;
    private initConsumer;
    consume(topics: (string | RegExp)[], groupId: string, callback: (payload: KafkaEachMessage) => Promise<void>, options?: KafkaConsumeOptions, conId?: string): Promise<void>;
    consumeBatch(topics: (string | RegExp)[], groupId: string, callback: (payload: KafkaBatchMessage) => Promise<void>, options?: KafkaConsumeOptions, conId?: string): Promise<void>;
    send(topic: string, messages: (string | Buffer | Message)[], options?: KafkaProducerOptions, conId?: string): Promise<void>;
    sendBatch(batch: KafkaProduceBatch, options?: KafkaProduceBatchOptions, conId?: string): Promise<void>;
}
//# sourceMappingURL=kafka.service.d.ts.map