import type { ICustomPartitioner, IHeaders } from "kafkajs";
import Kafka from "kafkajs";
import type { KafkaMessageKey, KafkaTopicName } from "../libs/branded-types/kafka/index.js";
import type { KafkaBrokerConfig, KafkaWithLogger } from "./kafka-broker.js";
import { KTKafkaBroker } from "./kafka-broker.js";
import type { KTTopicBatchPayload } from "./topic-batch.js";
type KTKafkaProducerConfig = {
    createPartitioner?: ICustomPartitioner;
} & KafkaBrokerConfig;
declare class KTKafkaProducer extends KTKafkaBroker {
    #private;
    constructor(params: KafkaWithLogger<KTKafkaProducerConfig>);
    getAdmin(): Kafka.Admin;
    init(): Promise<[void, void]>;
    destroy(): Promise<[void, void]>;
    createTopic(topicConfig: Kafka.ITopicConfig): Promise<void>;
    sendSingleMessage(params: {
        topicName: KafkaTopicName;
        value: string;
        messageKey: KafkaMessageKey;
        headers: IHeaders;
    }): Promise<void>;
    sendBatchMessages(params: KTTopicBatchPayload): Promise<void>;
}
export { KTKafkaProducer };
