import type { Client } from '@smithy/smithy-client'; import { AwsClientPool } from '../aws/ClientPool.js'; import { type AwsCredentialProviderWithMetaData } from '../aws/coreAuth.js'; import { AbstractClient, type ClientConstructor } from './AbstractClient.js'; type AnyClient = Client; /** * Type for custom client constructors */ type CustomClientConstructor = (new (options: { credentials: AwsCredentialProviderWithMetaData; region: string | undefined; endpoint?: string | undefined; }, customContext: CustomClientContext) => AbstractClient) & { clientName: string; }; /** * AWS Config-based client pool using dedicated Config client classes with registry */ export declare class AbstractClientPool extends AwsClientPool { private configClientCache; private clientRegistry; constructor(); /** * Register the default supported clients */ protected registerDefaultClients(): void; /** * Get the custom client context for a specific client type and configuration * @param ClientType The client constructor * @param credentials AWS credentials * @param region AWS region * @param endpoint Custom endpoint * @returns Custom client context */ protected getClientContext(ClientType: ClientConstructor, credentials: AwsCredentialProviderWithMetaData, region: string | undefined, endpoint: string | undefined): CustomClientContext; /** * Register a Config client implementation - automatically extracts SDK client name * * @param customClientConstructor The custom client constructor */ registerClient(customClientConstructor: CustomClientConstructor): void; /** * Returns a Config-based client that implements the same interface as the AWS SDK client * * @param ClientType The AWS SDK client constructor * @param credentials AWS credentials * @param region AWS region * @param endpoint Custom endpoint */ client(ClientType: ClientConstructor, credentials: AwsCredentialProviderWithMetaData, region: string | undefined, endpoint: string | undefined): T; } export {}; //# sourceMappingURL=AbstractClientPool.d.ts.map