import { type ethers } from "ethers"; import { type ContractProvider } from "../../utils"; import type { DeployAdapterResult } from "./GlobalAdapters"; /** Snapshot of an underlying ERC-4626 vault held by this adapter. */ export interface ERC4626VaultState { underlyingAddress: string; /** TVL of the underlying vault, in asset units. */ totalAssets: bigint; /** Underlying vault's share supply. */ totalSupply: bigint; /** Assets the adapter can withdraw right now. */ maxWithdraw: bigint; } export declare function deployERC4626Adapter(cp: ContractProvider, vaultAddress: string, morphoVaultV1: string): Promise; export declare function isERC4626Adapter(cp: ContractProvider, account: string): Promise; export declare function findERC4626Adapter(cp: ContractProvider, vaultAddress: string, morphoVaultV1: string): Promise; export declare function getIds(contract: ethers.Contract): Promise; /** Read the on-chain `adapterId` (bytes32) baked into the deployed adapter. */ export declare function getAdapterId(contract: ethers.Contract): Promise; export declare function getUnderlying(contract: ethers.Contract): Promise; export declare function getSkimRecipient(contract: ethers.Contract): Promise; /** * Vault-side tracked allocation for this adapter's id. Lazy: only resynced * to the real position on (de)allocate, so it excludes interest/losses * accrued since the last interaction. Use the type-agnostic * `GlobalAdapters.getRealAssets` for the live value. */ export declare function getAllocation(contract: ethers.Contract): Promise; /** * Read the live state of the underlying ERC-4626 vault. * No on-chain APY (would require historical share-price drift). */ export declare function getVaultState(contract: ethers.Contract): Promise; export declare function setSkimRecipient(contract: ethers.Contract, newSkimRecipient: string): Promise; export declare function skim(contract: ethers.Contract, token: string): Promise;