import type { SavingsRegistryEntry } from '../registry';
import { type SavingsReader } from './shared';
/**
 * Generic ERC-4626 reader — three calls per entry:
 *   1. `totalAssets()`
 *   2. `totalSupply()`
 *   3. `convertToAssets(10**shareDecimals)`
 *
 * The third gives `assets per 1 share` in **raw underlying units**.
 * To normalise to a 1e18-scaled "underlying per share" rate, we
 * divide by `10**underlyingDecimals`.
 *
 * For vaults where share and underlying decimals match (the
 * ERC-4626 convention) this collapses to `convertToAssets(1e18) *
 * 1e18 / 1e18`. For yUSD (18-d shares over 6-d USDC) it correctly
 * scales 1e6 → 1e18.
 *
 * Every savings entry today uses this reader. When a future entry
 * diverges (rebasing-via-wrapper for srUSD, bond floor for USD0++,
 * oracle-priced for RWA), add a sibling reader file under `readers/`
 * mirroring [../../lst/readers/](../../lst/readers/) and extend the
 * dispatch in [./index.ts](./index.ts).
 */
export declare const readerErc4626: (entry: SavingsRegistryEntry) => SavingsReader;
//# sourceMappingURL=erc4626.d.ts.map