import { type ClientFactory } from "../types.js";
import { type ClientManagerConfig } from "../config/configuration.js";
import { type AuthContext } from "../auth/context.js";
import { CredentialManager } from "../credentials/manager.js";
export declare class ClientPool<TClient, TOptions = void> {
    private clientFactory;
    private credentialManager;
    private config;
    private clientCache;
    constructor(clientFactory: ClientFactory<TClient, TOptions>, credentialManager: CredentialManager, config: ClientManagerConfig);
    getClient(authContext: AuthContext, options?: TOptions): Promise<TClient>;
    private generateRawCacheKey;
    clearCache(): Promise<void>;
    removeCachedClient(authContext: AuthContext, options?: TOptions): Promise<boolean>;
    getCacheStats(): {
        size: number;
        maxSize: number;
        pendingRequests: number;
    };
}
//# sourceMappingURL=pool.d.ts.map