/// import { CompressionTypes } from "kafkajs"; export interface KafkaHealthConfig { thresholds: { consumer: { errors: number; lag: number; stallLag: number; minMessages: number; }; producer: { errors: number; minMessages: number; }; }; } export interface NCommonKafkaOptions { "builtin.features"?: string; "client.id"?: string; "metadata.broker.list": string; "message.max.bytes"?: number; "message.copy.max.bytes"?: number; "receive.message.max.bytes"?: number; "max.in.flight.requests.per.connection"?: number; "metadata.request.timeout.ms"?: number; "topic.metadata.refresh.interval.ms"?: number; "metadata.max.age.ms"?: number; "topic.metadata.refresh.fast.interval.ms"?: number; "topic.metadata.refresh.fast.cnt"?: number; "topic.metadata.refresh.sparse"?: boolean; "topic.blacklist"?: string; "debug"?: string; "socket.timeout.ms"?: number; "socket.blocking.max.ms"?: number; "socket.send.buffer.bytes"?: number; "socket.receive.buffer.bytes"?: number; "socket.keepalive.enable"?: boolean; "socket.nagle.disable"?: boolean; "socket.max.fails"?: number; "broker.address.ttl"?: number; "broker.address.family"?: "any" | "v4" | "v6"; "reconnect.backoff.jitter.ms"?: number; "statistics.interval.ms"?: number; "enabled_events"?: number; "log_level"?: number; "log.queue"?: boolean; "log.thread.name"?: boolean; "log.connection.close"?: boolean; "internal.termination.signal"?: number; "api.version.request"?: boolean; "api.version.fallback.ms"?: number; "broker.version.fallback"?: string; "security.protocol"?: "plaintext" | "ssl" | "sasl_plaintext" | "sasl_ssl"; "ssl.cipher.suites"?: string; "ssl.key.location"?: string; "ssl.key.password"?: string; "ssl.certificate.location"?: string; "ssl.ca.location"?: string; "ssl.crl.location"?: string; "sasl.mechanisms"?: string; "sasl.kerberos.service.name"?: string; "sasl.kerberos.principal"?: string; "sasl.kerberos.kinit.cmd"?: string; "sasl.kerberos.keytab"?: string; "sasl.kerberos.min.time.before.relogin"?: number; "sasl.username"?: string; "sasl.password"?: string; "partition.assignment.strategy"?: string; "session.timeout.ms"?: number; "heartbeat.interval.ms"?: number; "group.protocol.type"?: string; "coordinator.query.interval.ms"?: number; "group.id"?: string; "event_cb"?: boolean; "dr_cb"?: boolean; } export interface NConsumerKafkaOptions extends NCommonKafkaOptions { "group.id": string; "enable.auto.commit"?: boolean; "auto.commit.interval.ms"?: number; "enable.auto.offset.store"?: boolean; "queued.min.messages"?: number; "queued.max.messages.kbytes"?: number; "fetch.wait.max.ms"?: number; "fetch.message.max.bytes"?: number; "fetch.min.bytes"?: number; "fetch.error.backoff.ms"?: number; "offset.store.method"?: "none" | "file" | "broker"; "enable.partition.eof"?: boolean; "check.crcs"?: boolean; } export interface NProducerKafkaOptions extends NCommonKafkaOptions { "queue.buffering.max.messages"?: number; "queue.buffering.max.kbytes"?: number; "queue.buffering.max.ms"?: number; "message.send.max.retries"?: number; "retry.backoff.ms"?: number; "compression.codec"?: CompressionTypes; "batch.num.messages"?: number; "delivery.report.only.error"?: boolean; } export interface KafkaConsumerConfig { kafkaHost?: string; groupId?: string; workerPerPartition?: number; options?: { sessionTimeout?: number; protocol?: [string]; fromOffset?: string; fetchMaxBytes?: number; fetchMinBytes?: number; fetchMaxWaitMs?: number; heartbeatInterval?: number; retryMinTimeout?: number; autoCommit?: boolean; autoCommitIntervalMs?: number; requireAcks?: number; ackTimeoutMs?: number; }; health?: KafkaHealthConfig; tconf?: { "auto.commit.enable"?: boolean; "auto.commit.interval.ms"?: number; "auto.offset.reset"?: "smallest" | "earliest" | "beginning" | "largest" | "latest" | "end" | "error"; "offset.store.path"?: string; "offset.store.sync.interval.ms"?: number; "offset.store.method"?: "file" | "broker"; "consume.callback.max.messages"?: number; }; noptions?: NConsumerKafkaOptions; logger?: KafkaLogger; } export interface KafkaProducerConfig { kafkaHost?: string; clientName?: string; workerPerPartition?: number; options?: { sessionTimeout?: number; protocol?: [string]; fromOffset?: string; fetchMaxBytes?: number; fetchMinBytes?: number; fetchMaxWaitMs?: number; heartbeatInterval?: number; retryMinTimeout?: number; requireAcks?: number; ackTimeoutMs?: number; partitionerType?: number; murmurHashVersion?: string; }; health?: KafkaHealthConfig; tconf?: { "request.required.acks"?: number; "request.timeout.ms"?: number; "message.timeout.ms"?: number; "produce.offset.report"?: boolean; }; noptions?: NProducerKafkaOptions; logger?: KafkaLogger; } export interface JSKafkaProducerConfig extends KafkaProducerConfig { noptions: NProducerKafkaOptions; } export interface JSKafkaConsumerConfig extends KafkaConsumerConfig { noptions: NConsumerKafkaOptions; } export interface KafkaMessage { topic: string; partition: number; offset: number; key: Buffer | string; value: Buffer | string | any; size: number; timestamp: number; } export interface SortedMessageBatch { [topic: string]: { [partition: string]: KafkaMessage[]; }; } export interface BatchConfig { batchSize?: number; commitEveryNBatch?: number; concurrency?: number; commitSync?: boolean; noBatchCommits?: boolean; manualBatching?: boolean; sortedManualBatch?: boolean; } export interface ConsumerStats { totalIncoming: number; lastMessage: number; receivedFirstMsg: boolean; totalProcessed: number; lastProcessed: number; queueSize: null; isPaused: boolean; omittingQueue: boolean; autoComitting: boolean; consumedSinceCommit: number; batch: { current: number; committs: number; total: number; config: BatchConfig; currentEmptyFetches: number; avgProcessingTime: number; }; lag: any; totalErrors: number; drainStats: Record | null; } export interface LagStatus { topic: string; partition: number; lowDistance: number; highDistance: number; detail: { lowOffset: number; highOffset: number; comittedOffset: number; }; } export interface ProducerStats { totalPublished: number; last: number; isPaused: boolean; totalErrors: number; } export interface MessageReturn { key: string; partition: number; offset?: number | null; value: string; } export interface MessageProduce { id: string; version: number; } export interface KafkaLogger { debug(message: string): void; info(message: string): void; warn(message: string, error?: Error): void; error(error: string | Error): void; } export interface AnalyticsLagChange { timelyDifference: number; fetchPerformance: number; newLags: Record; changedLags: Record; resolvedLags: { [key: string]: Record; }; stallLags: Record; } export interface AnalyticsConfig { analyticsInterval: number; } //# sourceMappingURL=interfaces.d.ts.map