/**
 * Number of base calls per reserve (excluding dynamic config calls):
 *  0: getReserve(reserveId)
 *  1: getReserveConfig(reserveId)
 *  2: getReserveSuppliedAssets(reserveId)
 *  3: getReserveDebt(reserveId)       → (drawn, premium)
 *  4: getReserveTotalDebt(reserveId)
 *
 * Plus getDynamicReserveConfig(reserveId, key) for each key 0..dynamicConfigKeyMax
 */
export declare const BASE_CALLS_PER_RESERVE = 5;
/**
 * Number of trailing calls per Spoke (after all reserve calls):
 *  0: getLiquidationConfig()
 *
 * The spoke ORACLE() is read from `aaveV4Spokes()` metadata, not on-chain.
 */
export declare const CALLS_PER_SPOKE_TAIL = 1;
/**
 * Max hub assets to enumerate per distinct hub.
 * Hub calls per asset: getAsset, getAddedAssets, getAssetTotalOwed (3 calls).
 * Plus 1 getAssetCount call. Total per hub = 1 + MAX * 3.
 */
export declare const MAX_HUB_ASSETS = 25;
/**
 * Builds multicall call list for Aave V4 public data — single spoke only.
 *
 * The lender argument is a per-spoke synthesized key (`AAVE_V4_<HEX>`).
 * The spoke address inside the key is the venue identity; per-reserve hub
 * binding lives on each reserve entry in the spoke's metadata.
 *
 * Call layout:
 *   For each reserve in this spoke:
 *     [getReserve, getReserveConfig, getReserveSuppliedAssets,
 *      getReserveDebt, getReserveTotalDebt]
 *     [getDynamicReserveConfig(rid, 0), ..., getDynamicReserveConfig(rid, max)]
 *   getLiquidationConfig() (spoke-level tail)
 *   getReservesPrices(reserveIds)  (spoke oracle batch, if oracle valid)
 *   For each distinct hub h (in first-seen order over the reserve list):
 *     h.getAssetCount()
 *     For i=0..MAX_HUB_ASSETS-1:
 *       h.getAsset(i), h.getAddedAssets(i), h.getAssetTotalOwed(i)
 *     For each reserve r where r.hub == h:
 *       h.getSpoke(r.assetId, spokeAddr)
 */
export declare const buildAaveV4LenderReserveCall: (chainId: string, lender: string) => any[];
/**
 * Computes the expected number of calls for the parser to validate.
 */
export declare const getAaveV4ExpectedCallCount: (chainId: string, lender: string) => number;
//# sourceMappingURL=publicCallBuild.d.ts.map