import type { IHeaders, ITopicConfig } from "kafkajs"; import type { KafkaTopicName, KafkaMessageKey } from "../libs/branded-types/kafka/index.js"; import type { KTTopicPayloadParser } from "../libs/helpers/default-data-parser.js"; export type KTTopicSettings = ITopicConfig & { topic: KafkaTopicName; batchMessageSizeToConsume: number; numPartitions: number; createDLQ: boolean; }; export type KTTopicPayload = { topicName: KafkaTopicName; message: string; messageKey: KafkaMessageKey; }; type KTTopicMeta = { meta: IHeaders & { traceId?: string; }; }; export type KTTopicPayloadWithMeta = KTTopicPayload & KTTopicMeta; export type KTTopicEvent = { (payload: Payload, { messageKey, meta }: KTTopicMeta & { messageKey: KafkaMessageKey; }): KTTopicPayloadWithMeta; topicSettings: KTTopicSettings; decode: KTTopicPayloadParser['decode']; }; export type KTPayloadFromTopic = T extends KTTopicEvent ? P : never; export type DLQPayload = { originalTopic: KafkaTopicName; originalPartition: number; originalOffset: string | undefined; key: KafkaMessageKey | null; value: T; errorMessage: string; failedAt: number; }; export declare const KTTopic: (_settings: KTTopicSettings, _validatorFn?: KTTopicPayloadParser) => KTTopicEvent; export declare const DLQKTTopic: (settings: KTTopicSettings, validatorFn?: KTTopicPayloadParser>) => KTTopicEvent>; export declare const CreateKTTopic: (settings: KTTopicSettings, validatorFn?: KTTopicPayloadParser) => { BaseTopic: KTTopicEvent; DLQTopic: KTTopicEvent> | null; }; export {};