import { GenericTokenList } from '../../types';
import { MulticallRetryFunction } from '../../types/providers';
import { EulerEarnVaults } from './types';
/**
 * One-shot fetcher for all Euler Earn vaults on a chain.
 *
 * Source strategy — Euler Data API primary, Goldsky subgraph fallback:
 *  - The Euler Data API reads live on-chain figures (APR-converted rates,
 *    correct share decimals, cap-aware liquidity), so it's the source of
 *    record. Used first on every chain.
 *  - The Goldsky subgraph is the fallback when the API is unavailable or
 *    returns nothing for the chain (and only on chains that have a
 *    subgraph configured). It can lag chain head, so it's no longer the
 *    primary path.
 *
 * @param chainId        target chain
 * @param prices         optional price map keyed by oracle key / underlying
 * @param tokenList      optional token list for hydrating `asset` metadata
 * @param multicallRetry optional multicall executor — both paths use it to
 *                       read each earn vault's real `decimals()` on-chain
 *                       (the Data API's `decimals` field is unreliable)
 *
 * @returns `EulerEarnVaults` keyed by lowercased vault address — `{}` when
 *          neither source returns data.
 */
export declare const fetchEulerEarnVaults: (chainId: string, prices?: {
    [asset: string]: number;
}, tokenList?: GenericTokenList, multicallRetry?: MulticallRetryFunction) => Promise<EulerEarnVaults>;
//# sourceMappingURL=fetchPublic.d.ts.map