import { Client } from '@joktec/core';
import { Consumer, Kafka, Message, Producer } from 'kafkajs';
import { KafkaConfig } from './kafka.config';
import { KafkaBatchMessage, KafkaConsumeOptions, KafkaEachMessage, KafkaProduceBatch, KafkaProduceBatchOptions, KafkaProducerOptions } from './models';
export interface KafkaClient extends Client<KafkaConfig, Kafka> {
    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>;
}
export interface KafkaProp {
    producers: {
        [producerKey: string]: Producer;
    };
    consumers: {
        [groupId: string]: Consumer;
    };
}
//# sourceMappingURL=kafka.client.d.ts.map