import { GenericTokenList } from '../../types';
import { MulticallRetryFunction } from '../../types/providers';
import { EulerEarnVaults } from './types';
/**
 * Read each earn vault's own `decimals()` on-chain. The Earn subgraph
 * doesn't surface the share-token decimals, and meta-vaults can apply a
 * decimals offset (18-dec shares over 6-dec USDC), so we can't assume
 * share == asset. Best-effort: a failed read just leaves the vault out of
 * the map, and the parser falls back to asset decimals (offset-free).
 */
export declare function fetchShareDecimals(chainId: string, vaultAddrs: string[], multicallRetry?: MulticallRetryFunction): Promise<Map<string, number>>;
/** True when the chain has an Euler Earn Goldsky subgraph configured. */
export declare const hasEulerEarnVaultSubgraph: (chainId: string) => boolean;
/** Goldsky subgraph URL for a chain, or undefined when none is configured. */
export declare const getEulerEarnSubgraphUrl: (chainId: string) => string | undefined;
/**
 * Fetches Euler Earn vaults from the Goldsky subgraph for chains
 * configured in `EULER_EARN_SUBGRAPH_URLS`.
 *
 * Two-phase fetch:
 *   1. `eulerEarnVaults` + flat strategies (drops the nested `eulerVault`
 *      relation, which throws null-violation errors when un-indexed).
 *   2. `eulerVaults` filtered to the assets discovered in step 1, used
 *      both for `decimals` (Earn subgraph doesn't expose it) and live
 *      `state.supplyApy` (used to compute the weighted Earn-vault APY).
 *
 * Phase 2 failures degrade gracefully — Earn-vault rows are still
 * returned with `supplyRate = 0` and `decimals` from the token list.
 */
export declare function fetchEulerEarnVaultsFromSubgraph(chainId: string, prices?: {
    [asset: string]: number;
}, tokenList?: GenericTokenList, multicallRetry?: MulticallRetryFunction): Promise<EulerEarnVaults>;
//# sourceMappingURL=fetchFromSubgraph.d.ts.map