import { Root } from 'protobufjs'; import { Client, ChannelOptions, ChannelCredentials } from '@grpc/grpc-js'; import { Pool } from 'generic-pool'; import { ClientConfig, ServerInfo, CONNECT_STATUS, TLS_MODE } from '../'; /** * Base gRPC client, setup all configuration here */ export declare class BaseClient { channelPool: Pool; clientId: string; connectStatus: CONNECT_STATUS; connectPromise: Promise; readonly tlsMode: TLS_MODE; readonly config: ClientConfig; readonly channelOptions: ChannelOptions; serverInfo: ServerInfo; timeout: number; protected creds: ChannelCredentials; protected metadata: Map; protected schemaProto: Root; protected milvusProto: Root; protected readonly protoInternalPath: { serviceName: string; collectionSchema: string; fieldSchema: string; functionSchema: string; }; /** * Sets up the configuration object for the gRPC client. * * @param configOrAddress The configuration object or the Milvus address as a string. * @param ssl Whether to use SSL or not. Default is false. * @param username The username for authentication. Required if password is provided. * @param password The password for authentication. Required if username is provided. */ constructor(configOrAddress: ClientConfig | string, ssl?: boolean, username?: string, password?: string, channelOptions?: ChannelOptions); /** * Checks the compatibility of the SDK with the Milvus server. * * @param {Object} data - Optional data object. * @param {string} data.message - The error message to throw if the SDK is incompatible. * @param {Function} data.checker - A function to call if the SDK is compatible. * @throws {Error} If the SDK is incompatible with the server. */ checkCompatibility(data?: { message?: string; checker?: Function; }): Promise; }