import { type MorphoTypeVaultEntry } from '@1delta/data-sdk';
import { GenericTokenList, MulticallRetryFunction } from '../../types';
import { MorphoVaults } from './types';
export interface FetchMorphoVaultsFromChainOptions {
    /** Restrict to a subset of curator-protocol keys (e.g. `['LISTA_DAO']`). */
    protocols?: string[];
    /**
     * Override the registry — `[{ vault, underlying, name? }]`. Lets fork tests
     * point at a specific vault list without populating the global registry.
     */
    vaultsOverride?: MorphoTypeVaultEntry[];
}
/**
 * On-chain MetaMorpho vault fetcher — multicalls every vault listed in
 * `morphoTypeVaults()` for the chain (or in `opts.vaultsOverride`) and
 * normalizes the results to the same `MorphoVaults` shape produced by the
 * Morpho API and Goldsky paths.
 *
 * Intended as a fallback for forks / chains where the Morpho public API and
 * Goldsky subgraph are unreachable. The supply rate isn't computable from
 * vault state alone (it requires walking the underlying market allocations),
 * so `supplyRate` and `rewardsRate` are surfaced as `0` — same convention
 * used by the Goldsky path when rewards aren't indexed. `liquidity` is the
 * real withdrawable amount from the allocation walk (idle + Σ min(allocation,
 * market liquidity)); it falls back to `totalAssets` only when no lens/core is
 * available for the chain.
 */
export declare const fetchMorphoVaultsFromChain: (chainId: string, multicallRetry: MulticallRetryFunction, prices?: {
    [asset: string]: number;
}, tokenList?: GenericTokenList, opts?: FetchMorphoVaultsFromChainOptions) => Promise<MorphoVaults>;
//# sourceMappingURL=fetchFromChain.d.ts.map