import { type AwsCredentialProviderWithMetaData } from '../aws/coreAuth.js';
import { type AuthConfig } from '../config/config.js';
import { type ClientConstructor } from '../customClients/AbstractClient.js';
import { AbstractClientPool } from '../customClients/AbstractClientPool.js';
import { type AwsService } from '../services.js';
import { type AwsConfigClientContext } from './AwsConfigClientContext.js';
interface AwsConfigClientPoolOptions {
    aggregatorName: string;
    region: string;
    accountId?: string;
    auth?: AuthConfig;
}
/**
 * AWS Config-based client pool using the new abstract base classes
 */
export declare class AwsConfigClientPool extends AbstractClientPool<AwsConfigClientContext> {
    private readonly options;
    private configClient;
    private aggregatorName;
    private configCredentials;
    /**
     * Constructor
     *
     * @param options Options for the Config client pool
     */
    constructor(options: AwsConfigClientPoolOptions);
    init(): Promise<void>;
    requiresAwsCredentials(): boolean;
    /**
     * Register the default supported Config-based clients
     */
    protected registerDefaultClients(): void;
    /**
     * Get custom client context for Config-based implementations
     */
    protected getClientContext(ClientType: ClientConstructor<any>, credentials: AwsCredentialProviderWithMetaData, region: string | undefined, endpoint: string | undefined): AwsConfigClientContext;
    isSyncSupported(service: AwsService, syncName: string, region: string): boolean;
}
export {};
//# sourceMappingURL=AwsConfigClientPool.d.ts.map