import KafkaJS from "kafkajs";
import type pino from "pino";
import { lz4Codec } from "../codec/lz4-codec.js";
import type { KafkaClientId } from "../libs/branded-types/kafka/index.js";
type KTKafkaSettings = {
    brokerUrls: string[];
    clientId: KafkaClientId;
    connectionTimeout: number;
    compressionCodec?: {
        codecType: keyof typeof CompressionCodecs;
        codecFn: lz4Codec;
    };
};
export type KafkaBrokerConfig = {
    kafkaSettings: KTKafkaSettings;
};
export type KafkaLogger = {
    logger: pino.Logger;
};
export type KafkaWithLogger<T extends KafkaBrokerConfig> = T & KafkaLogger;
declare const CompressionCodecs: {
    1: () => any;
    2: () => any;
    3: () => any;
    4: () => any;
};
declare class KTKafkaBroker {
    _kafka: KafkaJS.Kafka;
    constructor(params: KafkaBrokerConfig);
    encode(message: object): string;
    decode<T>(message: string): T;
}
export { KTKafkaBroker };
