import { Kafka, type KafkaConfig } from "kafkajs";
/**
 * BaseKafka class provides basic functionality for interacting with a Kafka cluster.
 * It allows creating Kafka topics and fetching the Kafka instance for producing/consuming messages.
 */
export declare class BaseKafka {
    private kafka;
    private consumerPath;
    private producerPath;
    /**
     * Creates an instance of BaseKafka with the provided Kafka configuration.
     *
     * @param {KafkaConfig} config - Kafka configuration object containing client settings.
     */
    constructor(config: KafkaConfig);
    /**
     * Returns the Kafka instance to be used for producing and consuming messages.
     *
     * @returns {Kafka} - Kafka instance.
     */
    getKafka(): Kafka;
    /**
     * Creates Kafka topics if they don't already exist.
     *
     * This method checks if the specified topics exist, and if not, it creates them with the given
     * number of partitions and replication factor.
     *
     * @param {Array<{ topic: string; partitions: number; replicationFactor: number }>} topics - List of topics to be created with their partitions and replication factor.
     * @returns {Promise<void>} - A promise that resolves once the topics are created (or skipped if they already exist).
     */
    createTopics(topics: {
        topic: string;
        partitions: number;
        replicationFactor: number;
    }[]): Promise<void>;
}
//# sourceMappingURL=BaseKafka.d.ts.map