import type { ethers } from "ethers"; import { type ContractProvider } from "../../utils"; import type { AdapterType } from "./AdaptersClient"; export interface DeployAdapterResult extends ethers.ContractTransactionResponse { adapterAddress: string; } /** Dispatch deployment to the per-type module. */ export declare function deployAdapter(cp: ContractProvider, type: AdapterType, parentAddress: string, underlyingAddress: string, cometRewards?: string): Promise; /** * Read the factory address that deployed an adapter. * Every adapter exposes `factory()`; the ABI of any concrete adapter type * works because the selector is identical, so we use the MarketV1 ABI here * as a generic placeholder. */ export declare function getAdapterFactoryAddress(cp: ContractProvider, adapterAddress: string): Promise; /** * Live value of an adapter's investments, in underlying asset units, pending * interest included. `realAssets()` is part of the `IAdapter` interface the * vault requires (it calls it on every adapter at interest accrual), so this * works on ANY adapter, including unknown types. Same placeholder-ABI trick * as `getAdapterFactoryAddress`: the selector is identical across types. * * Contrast with the vault-side `allocation(id)`, which is lazy (resynced only * on (de)allocate) and therefore excludes interest/losses accrued since the * last interaction. */ export declare function getRealAssets(cp: ContractProvider, adapterAddress: string): Promise; /** * Parent vault of an adapter. Unlike `realAssets`, `parentVault()` is not * part of `IAdapter`: it is a convention shared by every Byzantine adapter * type (same as `factory()` above), so it can revert on exotic third-party * adapters. */ export declare function getParentVault(cp: ContractProvider, adapterAddress: string): Promise; /** Detect an adapter's type by matching its `factory()` against known factories. */ export declare function getAdapterType(cp: ContractProvider, adapterAddress: string): Promise; /** Dispatch the `isAdapter` check to the per-type module. */ export declare function getIsAdapter(cp: ContractProvider, type: AdapterType, adapterAddress: string): Promise;