/** * @fileoverview Provides client management functionality for Kafka and Confluent Cloud services. */ import { KafkaJS } from "@confluentinc/kafka-javascript"; import { paths } from "@src/confluent/openapi-schema.js"; import { Client } from "openapi-fetch"; /** * Interface for managing Kafka client connections and operations. */ export interface KafkaClientManager { /** Gets the main Kafka client instance */ getKafkaClient(): KafkaJS.Kafka; /** Gets a connected admin client for Kafka administration operations */ getAdminClient(): Promise; /** Gets a connected producer client for publishing messages */ getProducer(): Promise; /** Gets a connected consumer client for subscribing to topics */ getConsumer(): Promise; /** Disconnects and cleans up all client connections */ disconnect(): Promise; } /** * Interface for managing Confluent Cloud REST client connections. */ export interface ConfluentCloudRestClientManager { /** Gets a configured REST client for Confluent Cloud Flink operations */ getConfluentCloudFlinkRestClient(): Client; /** Gets a configured REST client for general Confluent Cloud operations */ getConfluentCloudRestClient(): Client; /** Gets a configured REST client for Confluent Cloud Schema Registry operations */ getConfluentCloudSchemaRegistryRestClient(): Client; /** Gets a configured REST client for Confluent Cloud Kafka operations */ getConfluentCloudKafkaRestClient(): Client; setConfluentCloudRestEndpoint(endpoint: string): void; setConfluentCloudFlinkEndpoint(endpoint: string): void; setConfluentCloudSchemaRegistryEndpoint(endpoint: string): void; setConfluentCloudKafkaRestEndpoint(endpoint: string): void; } export interface ClientManager extends KafkaClientManager, ConfluentCloudRestClientManager { } /** * Default implementation of client management for Kafka and Confluent Cloud services. * Manages lifecycle and lazy initialization of various client connections. */ export declare class DefaultClientManager implements ClientManager { private confluentCloudBaseUrl; private confluentCloudFlinkBaseUrl; private confluentCloudSchemaRegistryBaseUrl; private confluentCloudKafkaRestBaseUrl; private readonly kafkaClient; private readonly adminClient; private readonly producer; private readonly confluentCloudFlinkRestClient; private readonly confluentCloudRestClient; private readonly confluentCloudSchemaRegistryRestClient; private readonly confluentCloudKafkaRestClient; /** * Creates a new DefaultClientManager instance. * @param config - Configuration options for KafkaJS client * @param confluentCloudBaseUrl - Base URL for Confluent Cloud REST API * @param confluentCloudFlinkBaseUrl - Base URL for Flink REST API * @param confluentCloudSchemaRegistryBaseUrl - Base URL for Schema Registry REST API * @param confluentCloudKafkaRestBaseUrl - Base URL for Kafka REST API */ constructor(config: KafkaJS.CommonConstructorConfig, confluentCloudBaseUrl?: string, confluentCloudFlinkBaseUrl?: string, confluentCloudSchemaRegistryBaseUrl?: string, confluentCloudKafkaRestBaseUrl?: string); /** * a function that sets a new confluent cloud rest endpoint. * Closes the current client first. * @param endpoint the endpoint to set */ setConfluentCloudRestEndpoint(endpoint: string): void; setConfluentCloudFlinkEndpoint(endpoint: string): void; setConfluentCloudSchemaRegistryEndpoint(endpoint: string): void; setConfluentCloudKafkaRestEndpoint(endpoint: string): void; getConsumer(): Promise; /** @inheritdoc */ getKafkaClient(): KafkaJS.Kafka; /** @inheritdoc */ getConfluentCloudFlinkRestClient(): Client; /** @inheritdoc */ getConfluentCloudRestClient(): Client; /** @inheritdoc */ getConfluentCloudSchemaRegistryRestClient(): Client; /** @inheritdoc */ getConfluentCloudKafkaRestClient(): Client; /** @inheritdoc */ getAdminClient(): Promise; /** @inheritdoc */ getProducer(): Promise; /** @inheritdoc */ disconnect(): Promise; } //# sourceMappingURL=client-manager.d.ts.map