import type { ICustomPartitioner, IHeaders, IResourceConfigEntry } 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";
type KTKafkaProducerConfig = {
    createPartitioner?: ICustomPartitioner;
} & KafkaBrokerConfig;
declare class KTKafkaProducer extends KTKafkaBroker {
    #private;
    constructor(params: KafkaWithLogger<KTKafkaProducerConfig>);
    init(): Promise<[void, void]>;
    destroy(): Promise<[void, void]>;
    createTopic(topicName: string, partitions?: number, customConfigArray?: IResourceConfigEntry[]): Promise<void>;
    sendSingleMessage(params: {
        topicName: KafkaTopicName;
        message: string;
        messageKey: KafkaMessageKey;
    }, headers?: IHeaders): Promise<void>;
}
export { KTKafkaProducer };
