import type { Address } from "viem"; import type { ERC4626Data, Token } from "../utils/types.js"; import type { IPriceService } from "../services/priceService/index.js"; import type { IRewardsService, VaultRewardInfo } from "../services/rewardsService/index.js"; import type { IntrinsicApyInfo } from "../services/intrinsicApyService/index.js"; import type { EulerLabel } from "./EulerLabels.js"; import { type DataIssue } from "../utils/entityDiagnostics.js"; /** Virtual deposit amount used in share/asset conversions (matches EVault ConversionHelpers.sol). */ export declare const VIRTUAL_DEPOSIT_AMOUNT = 1000000n; /** USD price per whole token as a plain decimal number. */ export type PriceUsd = number; export interface ERC4626VaultPopulated { marketPrices: boolean; rewards: boolean; intrinsicApy: boolean; labels: boolean; } export interface IERC4626Vault extends ERC4626Data { type: string; chainId: number; address: Address; shares: Token; asset: Token; totalShares: bigint; totalAssets: bigint; readonly isBorrowable: boolean; populated?: Partial; } /** Interface for ERC4626 share/asset conversion methods (not part of data shape). */ export interface IERC4626VaultConversion { convertToAssets(shares: bigint): bigint; convertToShares(assets: bigint): bigint; /** * Shares needed to withdraw `assets` of underlying — rounded UP so that * redeem(shares) yields at least `assets`. Counterpart to ERC4626 * `previewWithdraw(uint256)` and required for asset-denominated redeems. */ previewWithdraw(assets: bigint): bigint; } export declare class ERC4626Vault implements IERC4626Vault, IERC4626VaultConversion { type: string; chainId: number; address: Address; shares: Token; asset: Token; totalShares: bigint; totalAssets: bigint; marketPriceUsd?: PriceUsd; rewards?: VaultRewardInfo; intrinsicApy?: IntrinsicApyInfo; eulerLabel?: EulerLabel; populated: ERC4626VaultPopulated; constructor(args: IERC4626Vault); get isBorrowable(): boolean; get availableLiquidity(): bigint; /** 1:1 conversion (standard ERC4626 when totalShares === totalAssets). */ convertToAssets(shares: bigint): bigint; /** 1:1 conversion (standard ERC4626 when totalShares === totalAssets). */ convertToShares(assets: bigint): bigint; /** 1:1 conversion (rounding-up is a no-op when totalShares === totalAssets). */ previewWithdraw(assets: bigint): bigint; fetchAssetMarketValueUsd(amount: bigint, priceService: IPriceService): Promise; populateMarketPrices(priceService: IPriceService): Promise; populateRewards(rewardsService: IRewardsService): Promise; } //# sourceMappingURL=ERC4626Vault.d.ts.map