import { LenderUserQuery } from '../../../types/lenderTypes';
import { GetEvmClientFunction, LenderData } from '../../../types';
import { PoolWithMeta } from '../../../lending-pools';
import { UserData } from '../utils/types';
import type { ChainQuery, PreparedUserDataRpcCalls } from './types';
/**
 * Builds the multicall calls for the given queries and returns the raw results
 * @param chainId - The chain ID
 * @param queriesRaw - The queries to fetch data for
 * @param getEvmClient - Injected function to get EVM client
 * @param allowFailure - multicall can fail in single call, default is true
 * @param batchSize - multicall batch size, default is 4096
 * @param logs - show multicall error logs, default is false
 * @param concurrency - number of distinct RPC endpoints to shard batches
 *   across in parallel; <= 1 keeps the legacy single-endpoint path
 * @returns The raw results from the multicall, "0x" for failures
 */
export declare const getLenderUserDataResult: (chainId: string, queriesRaw: LenderUserQuery[], getEvmClient: GetEvmClientFunction, allowFailure?: boolean, batchSize?: number, retries?: number, logs?: boolean, concurrency?: number) => Promise<any[]>;
export declare const getLenderUserDataResultForwarded: (chainId: string, queriesRaw: any[], // LenderUserQuery[]
getEvmClient: GetEvmClientFunction, allowFailure?: boolean, batchSize?: number, retries?: number, logs?: boolean) => Promise<any[]>;
/**
 * Prepares the RPC calls for fetching user data without executing them
 * Uses multicall3 aggregate3 to batch all calls into a single RPC call
 * This reduces multiple RPC calls to one, avoiding rate limiting
 * @param chainId - The chain ID
 * @param queriesRaw - The queries to fetch data for
 * @param batchSize - Multicall batch size, default is 4096
 * @param blockTag - Block tag for the RPC calls, default is 'latest'
 * @param allowFailure - Allow individual calls to fail within multicall, default is true
 * @returns The prepared RPC batches and metadata needed for parsing
 */
export declare const prepareLenderUserDataRpcCalls: (chainId: string, queriesRaw: LenderUserQuery[], batchSize?: number, blockTag?: string, allowFailure?: boolean) => Promise<PreparedUserDataRpcCalls>;
/**
 * Fetch structured lender balance set for addresses
 * @param account general account as override in queries
 * @param chainQueries chain quieres -can only be {chainId} array, account required then
 * @param lenderState lender state data for rates
 * @returns lender user data map
 */
export declare function getLenderUserDataMulti(account: string | undefined, chainQueries: ChainQuery[], lenderState: LenderData | PoolWithMeta[]): Promise<{
    [chainId: string]: {
        [lender: string]: UserData;
    };
}>;
//# sourceMappingURL=e2e.d.ts.map