import { type ethers } from "ethers"; import { type ContractProvider } from "../../utils"; import type { DeployAdapterResult } from "./GlobalAdapters"; /** Snapshot of a Compound V3 (Comet) base market. Assets in baseToken units. */ export interface CometState { cometAddress: string; totalSupply: bigint; totalBorrow: bigint; /** totalSupply - totalBorrow. */ liquidity: bigint; /** Per-Comet 1e18 utilization (totalBorrow / totalSupply). */ utilization: bigint; /** Adapter's withdrawable balance in base token (Comet rebases `balanceOf`). */ adapterBalance: bigint; /** Per-second supply rate in WAD. */ supplyRatePerSec: bigint; } export declare function deployCompoundV3Adapter(cp: ContractProvider, vaultAddress: string, comet: string, cometRewards: string): Promise; export declare function isCompoundV3Adapter(cp: ContractProvider, account: string): Promise; export declare function findCompoundV3Adapter(cp: ContractProvider, vaultAddress: string, comet: string, cometRewards: 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; /** * Read the live state of the underlying Comet for this adapter. * Returns liquidity, utilization, supply rate, and the adapter's own balance. */ export declare function getCometState(contract: ethers.Contract): Promise; export declare function getCometRewards(contract: ethers.Contract): Promise; export declare function getClaimer(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; /** Base token (the parent vault's asset) supplied to the Comet. */ export declare function getAsset(contract: ethers.Contract): Promise; /** Pull rewards from `cometRewards`; `data` is the abi-encoded swap parameters. */ export declare function claim(contract: ethers.Contract, data: string): Promise; export declare function setClaimer(contract: ethers.Contract, newClaimer: string): Promise; export declare function setSkimRecipient(contract: ethers.Contract, newSkimRecipient: string): Promise; export declare function skim(contract: ethers.Contract, token: string): Promise;