import { QueryAllChainConfigResponse, QueryGetChainConfigResponse, QueryAllContractConfigResponse, QueryAllContractConfigByChainIdResponse } from '@routerprotocol/chain-api/routerprotocol/routerchain/multichain/query_pb';
import BaseConsumer from '../../BaseGrpcConsumer';
/**
 * The Multichain module is responsible for persisting the configuration of all supported chains by the Router chain and provides chain configuration related methods.
 *
 * @group gRPC API
 *
 * @example
 * To use Multichain methods, initialise a {@link ChainGrpcMultiChainApi} object to with a gRPC endpoint. An endpoint can be retrieved by using {@link networkEndpoints}.
 * ```ts
 * const endpoint =  getEndpointsForNetwork(Network.Devnet).grpcEndpoint;
 * const bankClient = new ChainGrpcMultiChainApi(endpoint.grpcEndpoint);
 * const response = await bankClient.fetchAllChainConfig();
 * ```
 */
export declare class ChainGrpcMultiChainApi extends BaseConsumer {
    /**
     *
     * @param chainType chain type.
     * @param chainId chain ID.
     * @returns chain configuration.
     */
    fetchChainConfig(chainId: string): Promise<QueryGetChainConfigResponse.AsObject>;
    /**
     *
     * @returns chain configuration list for all supported chains.
     */
    fetchAllChainConfig(): Promise<QueryAllChainConfigResponse.AsObject>;
    /**
     *
     * @param chainId
     * @returns
     */
    fetchContractConfig(chainId: string): Promise<QueryAllContractConfigByChainIdResponse.AsObject>;
    /**
     *
     * @returns
     */
    fetchAllContractConfig(): Promise<QueryAllContractConfigResponse.AsObject>;
}
