import { Call } from '../../../utils/multicall';
/**
 * Number of calls per reserve for user data:
 *  0: getUserSuppliedAssets(reserveId, user)
 *  1: getUserDebt(reserveId, user)       → (drawnDebt, premiumDebt)
 *  2: getUserReserveStatus(reserveId, user) → (usingAsCollateral, isBorrowing)
 *  3: getUserPosition(reserveId, user)   → UserPosition struct (includes dynamicConfigKey, shares)
 */
export declare const USER_CALLS_PER_RESERVE = 4;
/**
 * Builds multicall call list for Aave V4 user data — single spoke only.
 *
 * The lender argument is a per-spoke synthesized key (`AAVE_V4_<HEX>`).
 * Each spoke is its own venue; we walk its reserves once.
 *
 * Note: the user's per-spoke risk premium is NOT fetched on-chain. It is
 * reproduced off-chain in `createAaveV4UserState` from the same data the
 * Spoke uses (per-position oracle values + per-spoke `collateralRisk` from
 * the public meta), saving one call per spoke per user.
 */
export declare const buildAaveV4UserCall: (chainId: string, lender: string, account: string) => Call[];
/**
 * Computes the expected number of calls for the parser to validate.
 */
export declare const getAaveV4UserExpectedCallCount: (chainId: string, lender: string) => number;
//# sourceMappingURL=userCallBuild.d.ts.map