import lodash from 'lodash';
declare const chunk: <T>(array: lodash.List<T> | null | undefined, size?: number) => T[][];
/** Safe upper bound for how many vaults fit in a single getVaultsEntireData() call
 *  before hitting typical eth_call gas limits. Adjust if needed. */
export declare const VAULT_CHUNK_SIZE = 25;
/**
 * Builds the multicall descriptor for Fluid public data.
 *
 * Two calls:
 *   [0] VaultResolver.getVaultsEntireData()        — every vault in one shot
 *   [1] LiquidityResolver.getAllOverallTokensData() — per-token Liquidity-layer
 *       state. Vaults borrow from the shared Liquidity Layer, so the IRM input
 *       for every vault rate is the **Liquidity-layer token utilization**
 *       (`lastStoredUtilization`), not any vault-level ratio.
 *
 * fTokens are intentionally NOT fetched: they are standalone ERC-4626 vaults
 * on the shared Liquidity Layer (not a lending market), so they live outside
 * this module.
 *
 * Resolver addresses are constant across chains but sourced via the SDK so a
 * future chain with a divergent address can be added without code changes.
 */
export declare const buildFluidCall: (chainId: string, _lender?: string) => {
    address: string;
    name: string;
    params: never[];
}[];
/**
 * Chunked fallback for chains where the single `getVaultsEntireData()` call
 * exceeds eth_call gas limits. Uses the cached vault address list from
 * `fluidVaults()` to issue one `getVaultEntireData(vault)` call per address,
 * grouped into chunks of `VAULT_CHUNK_SIZE`.
 *
 * The parser must be the chunked variant that knows to reassemble the
 * per-vault results into a VaultEntireData[].
 */
export declare const buildFluidCallChunked: (chainId: string) => {
    address: string;
    name: string;
    params: string[];
}[];
export { chunk };
//# sourceMappingURL=publicCallBuild.d.ts.map