import type { RdiSDK } from '@rdi-ui/sdk'; import type { ActionIdResponse, ConnectionStatusSingleConnection, CredentialsInfo, DlqRecordsResponse, DlqTableInfo, FlushResponse, JobDryRunBody, JobDryRunSuccessResponse, MetadataResponse, OperationResponse, PipelineSecretResponse, PipelineSourceSchemaResponse, SchemaResponse, StatisticsResponse } from '@rdi-ui/sdk/models'; import type { DeleteSecretProviderRequest, GetMetadataRequest, GetSchemasRequest, GetSourceSchemasRequest, UpdateSecretRequest, UpsertSecretProviderRequest } from '@rdi-ui/sdk/models/operations'; import type { RdiClientConfig, ResolvedClientVersion } from '../config/types'; import type { MonitoringStatistics } from '../metrics/types'; import type { ConfigSchemaResponse, JobSchemaResponse, CreatePipelineRequest, PatchRequest, PipelineOperationResponse, PipelineResponse, SecretsRequest, SetMultiKeySecretRequest, SourceDbConnectionTest, SourceTestResponse, StatusResponse, TargetDbRequest, TargetTestResponse, UpdatePipelineRequest } from '../pipeline/types'; import type { GetDlqRecordsRequest, RdiClient } from './RdiClient'; export interface RdiClientAuthState { jwtToken?: string; } export interface BaseRdiClientOptions { version: ResolvedClientVersion; authState?: RdiClientAuthState; } export declare abstract class BaseRdiClient implements RdiClient { readonly config: RdiClientConfig; readonly version: ResolvedClientVersion; protected readonly sdk: RdiSDK; protected readonly authState: RdiClientAuthState; constructor(config: RdiClientConfig, sdk: RdiSDK, options: BaseRdiClientOptions); abstract getPipeline(pipelineName?: string): Promise; abstract getPipelineStatus(pipelineName: string): Promise; abstract startPipeline(pipelineName: string, source?: string): Promise; abstract stopPipeline(pipelineName: string, source?: string): Promise; abstract resetPipeline(pipelineName: string, source?: string): Promise; flushTarget(_pipelineName: string, _targetName: string): Promise; abstract createPipeline(request: CreatePipelineRequest, dryRun?: boolean): Promise; abstract updatePipeline(pipelineName: string, request: UpdatePipelineRequest, options?: { dryRun?: boolean; validateCdc?: boolean; }): Promise; abstract patchPipeline(pipelineName: string, request: PatchRequest, options?: { dryRun?: boolean; validateCdc?: boolean; }): Promise; abstract deletePipeline(pipelineName: string): Promise; /** @inheritDoc */ abstract getProcessorMetrics(pipelineName: string): Promise; getDlqStreams(_pipelineName: string): Promise>; getDlqStream(_pipelineName: string, _fullTableName: string): Promise>; getDlqRecords(_request: GetDlqRecordsRequest): Promise; abstract testSource(pipelineName: string, request: SourceDbConnectionTest): Promise; login(credentials: CredentialsInfo): Promise; protected wrapError(error: unknown, operation: string): never; protected extractInvalidProperties(errors?: Array<{ details?: Record; }>): Record | undefined; protected normalizeTargetTestResponse(raw: ConnectionStatusSingleConnection): TargetTestResponse; protected normalizeSourceTestResponse(raw: ConnectionStatusSingleConnection): SourceTestResponse; protected omitUndefined(value: T): Partial; protected isV2ValidationError(error: unknown): error is Error & { detail: string; errors?: Array<{ message: string; details?: Record; }> | null; }; getMonitoringStatistics(): Promise; getSchemas(_request: GetSchemasRequest): Promise; getSourceSchemas(request: GetSourceSchemasRequest, _pipelineName: string): Promise; getMetadata(request: GetMetadataRequest): Promise; jobDryRun(request: JobDryRunBody): Promise; testTarget(_pipelineName: string, request: TargetDbRequest): Promise; setSecrets(request: SecretsRequest): Promise; setMultiKeySecret(request: SetMultiKeySecretRequest): Promise; updateSecret(_request: UpdateSecretRequest): Promise; upsertSecretProvider(request: UpsertSecretProviderRequest): Promise; deleteSecretProvider(request: DeleteSecretProviderRequest): Promise; /** Jobs schemas are not yet exposed by the generated SDK. Keep auth in the shared client. */ getJobsSchemas(): Promise; getConfigSchemas(): Promise; }