import BaseConsumer from '../../BaseGrpcConsumer';
import { PaginationOption } from '../../../types/pagination';
/**
 * The bank module is responsible for handling multi-asset coin transfers between accounts.
 *
 * @group gRPC API
 *
 * @example
 * To use Bank methods, initialise a {@link ChainGrpcBankApi} 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 ChainGrpcBankApi(endpoint);
 * const response = await bankClient.fetchBalances("router12avkt8c0lk76atge8f3pe2t6fj4jsc8038d742");
 * ```
 */
export declare class ChainGrpcBankApi extends BaseConsumer {
    fetchModuleParams(): Promise<import("..").BankModuleParams>;
    /**
     * Get balance of a coin.
     *
     * @param accountAddress account address.
     * @param denom coin denomination.
     * @returns balance.
     */
    fetchBalance({ accountAddress, denom, }: {
        accountAddress: string;
        denom: string;
    }): Promise<import("../../..").Coin>;
    /**
     * Get balance of all coins
     *
     * @param address account address.
     * @returns list of balances.
     */
    fetchBalances(address: string): Promise<{
        balances: import("../../..").Coin[];
        pagination: import("../../../types/pagination").Pagination;
    }>;
    /**
     * Get total supply of coins.
     *
     * @param pagination pagination options (optional param).
     * @returns total supply.
     */
    fetchTotalSupply(pagination?: PaginationOption): Promise<{
        supply: import("..").TotalSupply;
        pagination: import("../../../types/pagination").Pagination;
    }>;
}
