import type { ConnBaseQueryParams, ConnCommandResult, Connection, ConnectionParams, ConnExecParams, ConnExecResult, ConnInsertParams, ConnInsertResult, ConnPingResult, ConnQueryResult } from '@clickhouse/client-common'; import { ClickHouseLogLevel } from '@clickhouse/client-common'; import { type ConnPingParams } from '@clickhouse/client-common'; import type Http from 'http'; import type Https from 'node:https'; import type Stream from 'stream'; import { type RequestParams } from './socket_pool'; export type NodeConnectionParams = ConnectionParams & { tls?: TLSParams; http_agent?: Http.Agent | Https.Agent; set_basic_auth_header: boolean; capture_enhanced_stack_trace: boolean; keep_alive: { enabled: boolean; idle_socket_ttl: number; }; log_level: ClickHouseLogLevel; /** * Eagerly destroy the sockets that are considered stale (idle for more than `idle_socket_ttl`), without waiting for the timeout to trigger. This allows to free up the stale sockets in case of longer event loop delays. */ eagerly_destroy_stale_sockets: boolean; }; export type TLSParams = { ca_cert: Buffer; type: 'Basic'; } | { ca_cert: Buffer; cert: Buffer; key: Buffer; type: 'Mutual'; }; export declare abstract class NodeBaseConnection implements Connection { protected readonly params: NodeConnectionParams; protected readonly agent: Http.Agent; protected readonly defaultAuthHeader: string; protected readonly defaultHeaders: Http.OutgoingHttpHeaders; private readonly connectionId; private readonly socketPool; protected constructor(params: NodeConnectionParams, agent: Http.Agent); ping(params: ConnPingParams): Promise; query(params: ConnBaseQueryParams): Promise>; insert(params: ConnInsertParams): Promise; exec(params: ConnExecParams): Promise>; command(params: ConnBaseQueryParams): Promise; close(): Promise; protected defaultHeadersWithOverride(params?: ConnBaseQueryParams): Http.OutgoingHttpHeaders; protected buildRequestHeaders(params?: ConnBaseQueryParams): Http.OutgoingHttpHeaders; protected abstract createClientRequest(params: RequestParams): Http.ClientRequest; private getQueryId; private getAbortController; private logRequestError; private httpRequestErrorMessage; private runExec; private request; }