import { MulticallRetryFunction, GenericTokenList } from '../../types';
import type { AaveEarnVaults } from './types';
/**
 * One-shot fetcher for all tracked Aave Earn vaults on a chain.
 *
 * Hybrid provenance (mirrors GMX's API + on-chain shape):
 *  1. **API leg** — {@link fetchAaveEarnApiVaults} resolves the tracked
 *     curators/vaults into live `Vault` records (identity, underlying
 *     reserve, `vaultApr`, fee, per-underlying USD price).
 *  2. **On-chain leg** — one multicall over the discovered vaults reads
 *     `totalAssets()` (the canonical TVL — the API `balance` field reads the
 *     vault's ~0 idle underlying, since it supplies into Aave and holds
 *     aTokens), share `decimals()`, `totalSupply()`, and
 *     `convertToAssets(10**shareDecimals)` (the share price).
 *
 * Returns `{}` (no network I/O) when the chain has no tracked curators or
 * pinned vaults. Never throws — the orchestrator logs provider-level
 * failures.
 */
export declare const fetchAaveEarnVaults: (chainId: string, multicallRetry: MulticallRetryFunction, prices?: {
    [asset: string]: number;
}, tokenList?: GenericTokenList) => Promise<AaveEarnVaults>;
//# sourceMappingURL=fetchPublic.d.ts.map