import { GrpcOptions } from '@nestjs/microservices';
import { NacosClientGrpc, whaleNacosOptions } from '../interface';
export interface ConnectionPoolGrpcOptions extends GrpcOptions, Pick<whaleNacosOptions, 'loadBalance' | 'group' | 'mode' | 'localEnvString' | 'localhost'> {
    serviceName: string;
}
export interface NacosGrpcOptionsObject {
    [key: string]: ConnectionPoolGrpcOptions;
}
export declare class ConnectionPool {
    grpcOptionsObject: NacosGrpcOptionsObject;
    serviceGrpcMap: Map<any, any>;
    grpcOptionsKeyArray: string[];
    _grpcOptionsKeyArray: string[];
    limit: number;
    concurrentPool: Promise<NacosClientGrpc>[];
    taskQueue: any;
    constructor(grpcOptionsObject: NacosGrpcOptionsObject, limit?: number);
    ready(): Promise<any>;
    run(race: Promise<any>): Promise<any>;
    createTask(grpcOptions: ConnectionPoolGrpcOptions, key: string): Promise<NacosClientGrpc>;
    getClientProvider(key: string): {
        provide: string;
        useFactory: () => Promise<NacosClientGrpc>;
        inject: never[];
    };
}
