import { ProviderLike } from './providers';
import { BalanceMap, EthScanOptions, Result } from './types';
/**
 * Get a balance map from an array of addresses and an array of balances.
 *
 * @param {string[]} addresses
 * @param {bigint[]} results
 * @return {BalanceMap}
 */
export declare const toBalanceMap: (addresses: string[], results: Array<bigint | Result>) => BalanceMap;
/**
 * Get a nested balance map from an array of addresses, token addresses, and results.
 *
 * @param {string[]} addresses
 * @param {bigint[]} tokenAddresses
 * @param {BalanceMap<BalanceMap>} results
 */
export declare const toNestedBalanceMap: (addresses: string[], tokenAddresses: string[], results: Array<Array<bigint | Result>>) => BalanceMap<BalanceMap>;
/**
 * Low level API function to send a contract call that returns a single Result array. It will automatically retry any
 * failed calls.
 *
 * @param provider
 * @param batchAddresses The addresses to batch by
 * @param addresses The address(es) to use when retrying failed calls
 * @param contractAddresses The contract address(es) to use when retrying failed calls
 * @param encodeData
 * @param encodeSingle
 * @param options
 */
export declare const callSingle: (provider: ProviderLike, batchAddresses: string[], addresses: string | string[], contractAddresses: string | string[], encodeData: (addresses: string[]) => string, encodeSingle: (address: string) => string, options?: EthScanOptions | undefined) => Promise<Result[]>;
/**
 * Retry calls to the contract directly, if a contract call in the eth-scan contract failed.
 *
 * @param provider
 * @param addresses
 * @param contracts
 * @param results
 * @param encodeData
 */
export declare const retryCalls: (provider: ProviderLike, addresses: string | string[], contracts: string | string[], results: Result[], encodeData: (address: string) => string) => Promise<Result[]>;
//# sourceMappingURL=api.d.ts.map