UNPKG

@enzymefinance/testutils

Version:

Technology Regulated and Operated Investment Funds

878 lines (858 loc) 114 kB
import * as _enzymefinance_ethers from '@enzymefinance/ethers'; import { AddressLike, ContractReceipt, Contract, Call, Send } from '@enzymefinance/ethers'; import * as _enzymefinance_hardhat from '@enzymefinance/hardhat'; import { SignerWithAddress, EthereumTestnetProvider } from '@enzymefinance/hardhat'; import * as ethers from 'ethers'; import { BigNumberish, utils, BigNumber, Signer, BytesLike } from 'ethers'; import * as hardhat_deploy_dist_types from 'hardhat-deploy/dist/types'; import * as _enzymefinance_protocol from '@enzymefinance/protocol'; import { AaveAdapter, AaveDebtPositionLib, AaveDebtPositionParser, AavePriceFeed, AddressListRegistry, AllowedAdapterIncomingAssetsPolicy, AllowedAdaptersPerManagerPolicy, AllowedAdaptersPolicy, AllowedAssetsForRedemptionPolicy, AllowedDepositRecipientsPolicy, AllowedExternalPositionTypesPerManagerPolicy, AllowedExternalPositionTypesPolicy, AllowedSharesTransferRecipientsPolicy, ArbitraryLoanFixedInterestModule, ArbitraryLoanPositionLib, ArbitraryLoanPositionParser, ArbitraryLoanTotalNominalDeltaOracleModule, ArbitraryTokenPhasedSharesWrapperFactory, CompoundAdapter, CompoundDebtPositionLib, CompoundDebtPositionParser, CompoundPriceFeed, ComptrollerLib, ConvexCurveLpStakingAdapter, ConvexCurveLpStakingWrapperFactory, ConvexCurveLpStakingWrapperPriceFeed, ConvexVotingPositionLib, ConvexVotingPositionParser, CumulativeSlippageTolerancePolicy, CurveExchangeAdapter, CurveLiquidityAdapter, CurvePriceFeed, DepositWrapper, Dispatcher, EntranceRateBurnFee, EntranceRateDirectFee, ExitRateBurnFee, ExitRateDirectFee, ExternalPositionFactory, ExternalPositionManager, FeeManager, FiduPriceFeed, FundDeployer, FundValueCalculator, FundValueCalculatorRouter, FundValueCalculatorUsdWrapper, FuseAdapter, FusePriceFeed, GasRelayPaymasterFactory, GlobalConfigLib, IdleAdapter, IdlePriceFeed, IntegrationManager, LidoStethPriceFeed, LiquityDebtPositionLib, LiquityDebtPositionParser, ManagementFee, ManualValueOracleFactory, MapleLiquidityPositionLib, MapleLiquidityPositionParser, MinAssetBalancesPostRedemptionPolicy, MinMaxInvestmentPolicy, NotionalV2PositionLib, NotionalV2PositionParser, MinSharesSupplyFee, OlympusV2Adapter, OnlyRemoveDustExternalPositionPolicy, OnlyUntrackDustOrPricelessAssetsPolicy, ParaSwapV5Adapter, PerformanceFee, PolicyManager, PoolTogetherV4Adapter, PoolTogetherV4PriceFeed, ProtocolFeeReserveLib, ProtocolFeeTracker, RevertingPriceFeed, SharesSplitterFactory, SynthetixAdapter, UintListRegistry, UniswapV2ExchangeAdapter, UniswapV2LiquidityAdapter, UniswapV2PoolPriceFeed, UniswapV3Adapter, UnpermissionedActionsWrapper, UsdEthSimulatedAggregator, ValueInterpreter, VaultLib, YearnVaultV2Adapter, YearnVaultV2PriceFeed, ZeroExV2Adapter, ChainlinkRateAsset, CreateSignedRelayRequestOptions, IGsnRelayHub, StandardToken, MockChainlinkPriceSource, IExternalPositionProxy, VotiumClaimParam, MockGenericExternalPositionParser, MockGenericExternalPositionLib, IFee, ICERC20, CurveRedeemType, MockGenericAdapter, ParaSwapV5Path, SignedZeroExV2Order, IPolicy, ArbitraryTokenPhasedSharesWrapperLib, ManualValueOracleLib, SharesSplitterLib, ComptrollerProxy, GasRelayPaymasterLib, AddressListUpdateType } from '@enzymefinance/protocol'; import { MerkleTree } from 'merkletreejs'; declare function impersonateContractSigner({ contractAddress, ethSeeder, provider, }: { contractAddress: AddressLike; ethSeeder: SignerWithAddress; provider: EthereumTestnetProvider; }): Promise<SignerWithAddress>; declare function impersonateSigner({ signerAddress, provider, }: { signerAddress: AddressLike; provider: EthereumTestnetProvider; }): Promise<SignerWithAddress>; declare function seedAccount({ account, amount, provider, token, }: { account: AddressLike; amount: BigNumberish; provider: EthereumTestnetProvider; token: AddressLike; }): Promise<void>; interface SlotInfo { slot: number; storageAddress?: string; isVyper: boolean; } declare function findTokenBalanceStorageSlot(token: AddressLike, provider: EthereumTestnetProvider): Promise<SlotInfo | undefined>; declare function assertEvent<TResult = any>(receipt: ContractReceipt<any>, event: utils.EventFragment | string, match?: TResult): NonNullable<TResult>; declare function assertNoEvent(receipt: ContractReceipt<any>, event: utils.EventFragment | string): void; declare function getNamedSigner(name: string): Promise<_enzymefinance_hardhat.SignerWithAddress>; declare function getUnnamedSigners(): Promise<_enzymefinance_hardhat.SignerWithAddress[]>; declare function deployProtocolFixture(): Promise<{ readonly accounts: _enzymefinance_hardhat.SignerWithAddress[]; readonly config: DeploymentConfig; readonly deployer: _enzymefinance_hardhat.SignerWithAddress; readonly deployment: { readonly aaveAdapter: AaveAdapter; readonly aaveDebtPositionLib: AaveDebtPositionLib; readonly aaveDebtPositionParser: AaveDebtPositionParser; readonly aavePriceFeed: AavePriceFeed; readonly addressListRegistry: AddressListRegistry; readonly allowedAdapterIncomingAssetsPolicy: AllowedAdapterIncomingAssetsPolicy; readonly allowedAdaptersPerManagerPolicy: AllowedAdaptersPerManagerPolicy; readonly allowedAdaptersPolicy: AllowedAdaptersPolicy; readonly allowedAssetsForRedemptionPolicy: AllowedAssetsForRedemptionPolicy; readonly allowedDepositRecipientsPolicy: AllowedDepositRecipientsPolicy; readonly allowedExternalPositionTypesPerManagerPolicy: AllowedExternalPositionTypesPerManagerPolicy; readonly allowedExternalPositionTypesPolicy: AllowedExternalPositionTypesPolicy; readonly allowedSharesTransferRecipientsPolicy: AllowedSharesTransferRecipientsPolicy; readonly arbitraryLoanFixedInterestModule: ArbitraryLoanFixedInterestModule; readonly arbitraryLoanPositionLib: ArbitraryLoanPositionLib; readonly arbitraryLoanPositionParser: ArbitraryLoanPositionParser; readonly arbitraryLoanTotalNominalDeltaOracleModule: ArbitraryLoanTotalNominalDeltaOracleModule; readonly arbitraryTokenPhasedSharesWrapperFactory: ArbitraryTokenPhasedSharesWrapperFactory; readonly compoundAdapter: CompoundAdapter; readonly compoundDebtPositionLib: CompoundDebtPositionLib; readonly compoundDebtPositionParser: CompoundDebtPositionParser; readonly compoundPriceFeed: CompoundPriceFeed; readonly comptrollerLib: ComptrollerLib; readonly convexCurveLpStakingAdapter: ConvexCurveLpStakingAdapter; readonly convexCurveLpStakingWrapperFactory: ConvexCurveLpStakingWrapperFactory; readonly convexCurveLpStakingWrapperPriceFeed: ConvexCurveLpStakingWrapperPriceFeed; readonly convexVotingPositionLib: ConvexVotingPositionLib; readonly convexVotingPositionParser: ConvexVotingPositionParser; readonly cumulativeSlippageTolerancePolicy: CumulativeSlippageTolerancePolicy; readonly curveExchangeAdapter: CurveExchangeAdapter; readonly curveLiquidityAdapter: CurveLiquidityAdapter; readonly curvePriceFeed: CurvePriceFeed; readonly depositWrapper: DepositWrapper; readonly dispatcher: Dispatcher; readonly entranceRateBurnFee: EntranceRateBurnFee; readonly entranceRateDirectFee: EntranceRateDirectFee; readonly exitRateBurnFee: ExitRateBurnFee; readonly exitRateDirectFee: ExitRateDirectFee; readonly externalPositionFactory: ExternalPositionFactory; readonly externalPositionManager: ExternalPositionManager; readonly feeManager: FeeManager; readonly fiduPriceFeed: FiduPriceFeed; readonly fundDeployer: FundDeployer; readonly fundValueCalculator: FundValueCalculator; readonly fundValueCalculatorRouter: FundValueCalculatorRouter; readonly fundValueCalculatorUsdWrapper: FundValueCalculatorUsdWrapper; readonly fuseAdapter: FuseAdapter; readonly fusePriceFeed: FusePriceFeed; readonly gasRelayPaymasterFactory: GasRelayPaymasterFactory; readonly globalConfigLib: GlobalConfigLib; readonly globalConfigProxy: GlobalConfigLib; readonly idleAdapter: IdleAdapter; readonly idlePriceFeed: IdlePriceFeed; readonly integrationManager: IntegrationManager; readonly lidoStethPriceFeed: LidoStethPriceFeed; readonly liquityDebtPositionLib: LiquityDebtPositionLib; readonly liquityDebtPositionParser: LiquityDebtPositionParser; readonly managementFee: ManagementFee; readonly manualValueOracleFactory: ManualValueOracleFactory; readonly mapleLiquidityPositionLib: MapleLiquidityPositionLib; readonly mapleLiquidityPositionParser: MapleLiquidityPositionParser; readonly minAssetBalancesPostRedemptionPolicy: MinAssetBalancesPostRedemptionPolicy; readonly minMaxInvestmentPolicy: MinMaxInvestmentPolicy; readonly notionalV2Position: NotionalV2PositionLib; readonly notionalV2PositionParser: NotionalV2PositionParser; readonly minSharesSupplyFee: MinSharesSupplyFee; readonly olympusV2Adapter: OlympusV2Adapter; readonly onlyRemoveDustExternalPositionPolicy: OnlyRemoveDustExternalPositionPolicy; readonly onlyUntrackDustOrPricelessAssetsPolicy: OnlyUntrackDustOrPricelessAssetsPolicy; readonly paraSwapV5Adapter: ParaSwapV5Adapter; readonly performanceFee: PerformanceFee; readonly policyManager: PolicyManager; readonly poolTogetherV4Adapter: PoolTogetherV4Adapter; readonly poolTogetherV4PriceFeed: PoolTogetherV4PriceFeed; readonly protocolFeeReserveLib: ProtocolFeeReserveLib; readonly protocolFeeReserveProxy: ProtocolFeeReserveLib; readonly protocolFeeTracker: ProtocolFeeTracker; readonly revertingPriceFeed: RevertingPriceFeed; readonly sharesSplitterFactory: SharesSplitterFactory; readonly synthetixAdapter: SynthetixAdapter; readonly uintListRegistry: UintListRegistry; readonly uniswapV2ExchangeAdapter: UniswapV2ExchangeAdapter; readonly uniswapV2LiquidityAdapter: UniswapV2LiquidityAdapter; readonly uniswapV2PoolPriceFeed: UniswapV2PoolPriceFeed; readonly uniswapV3Adapter: UniswapV3Adapter; readonly unpermissionedActionsWrapper: UnpermissionedActionsWrapper; readonly usdEthSimulatedAggregator: UsdEthSimulatedAggregator; readonly valueInterpreter: ValueInterpreter; readonly vaultLib: VaultLib; readonly yearnVaultV2Adapter: YearnVaultV2Adapter; readonly yearnVaultV2PriceFeed: YearnVaultV2PriceFeed; readonly zeroExV2Adapter: ZeroExV2Adapter; }; readonly fixture: { [name: string]: hardhat_deploy_dist_types.Deployment; }; }>; declare type Resolve<T extends () => any> = ReturnType<T> extends Promise<infer U> ? U : ReturnType<T>; declare type ProtocolDeployment = Resolve<typeof deployProtocolFixture>; interface DeploymentConfig { feeBps: number; feeToken: string; feeTokenBurn: { burnFromVault: boolean; sendToProtocolFeeReserve: boolean; externalBurnerAddress: string; }; weth: string; wrappedNativeAsset: string; primitives: Record<string, string>; gsn: { relayHub: string; relayWorker: string; trustedForwarder: string; }; chainlink: { ethusd: string; aggregators: Record<string, readonly [string, ChainlinkRateAsset]>; }; synthetix: { snx: string; susd: string; delegateApprovals: string; originator: string; redeemer: string; trackingCode: string; }; convex: { booster: string; crvToken: string; cvxCrvStaking: string; cvxToken: string; vlCvx: string; vlCvxExtraRewards: string; votiumMultiMerkleStash: string; }; curve: { addressProvider: string; minter: string; nativeAssetAddress: string; poolOwner: string; pools: Record<string, { pool: string; lpToken: string; liquidityGaugeToken: string; invariantProxyAsset: string; hasReentrantVirtualPrice: boolean; }>; virtualPriceDeviationThreshold: number; }; aave: { incentivesController: string; lendingPoolAddressProvider: string; protocolDataProvider: string; atokens: Record<string, [string, string]>; }; compound: { ceth: string; comptroller: string; ctokens: Record<string, string>; }; fuse: { fetherTokens: Record<string, string>; ftokens: Record<string, string>; }; goldfinch: { fidu: string; seniorPool: string; }; idle: { bestYieldIdleDai: string; bestYieldIdleUsdc: string; bestYieldIdleUsdt: string; bestYieldIdleSusd: string; bestYieldIdleWbtc: string; riskAdjustedIdleDai: string; riskAdjustedIdleUsdc: string; riskAdjustedIdleUsdt: string; }; lido: { steth: string; }; liquity: { borrowerOperations: string; troveManager: string; }; maple: { mplRewardsFactory: string; poolFactory: string; }; notional: { notionalContract: string; }; olympusV2: { stakingContract: string; }; paraSwapV5: { augustusSwapper: string; tokenTransferProxy: string; feePartner: string; feePercent: number; }; poolTogetherV4: { ptTokens: Record<string, [string, string]>; }; positionsLimit: number; snapshot: { delegateRegistry: string; }; solvFinanceV2: { convertibleMarket: string; initialConvertibleOfferingMarket: string; deployer: string; priceOracleManager: string; manualPriceOracle: string; convertibles: Record<'perp' | 'usf', { underlying: string; voucher: string; pool: string; }>; }; theGraph: { stakingProxy: string; grt: string; }; unsupportedAssets: Record<string, string>; uniswap: { factory: string; router: string; pools: Record<string, string>; }; uniswapV3: { router: string; nonFungiblePositionManager: string; }; yearn: { vaultV2: { registry: string; yVaults: Record<string, string>; }; }; zeroex: { exchange: string; allowedMakers: string[]; }; } interface RelayTransactionOptions extends CreateSignedRelayRequestOptions { relayHub: string; } declare function relayTransaction(options: RelayTransactionOptions): Promise<ContractReceipt<_enzymefinance_ethers.SendFunction<[maxAcceptanceBudget: BigNumberish, relayRequest: { request: { from: _enzymefinance_ethers.AddressLike; to: _enzymefinance_ethers.AddressLike; value: BigNumberish; gas: BigNumberish; nonce: BigNumberish; data: utils.BytesLike; validUntil: BigNumberish; }; relayData: { gasPrice: BigNumberish; pctRelayFee: BigNumberish; baseRelayFee: BigNumberish; relayWorker: _enzymefinance_ethers.AddressLike; paymaster: _enzymefinance_ethers.AddressLike; forwarder: _enzymefinance_ethers.AddressLike; paymasterData: utils.BytesLike; clientId: BigNumberish; }; }, signature: utils.BytesLike, approvalData: utils.BytesLike, externalGasLimit: BigNumberish], { paymasterAccepted: boolean; returnValue: string; }, IGsnRelayHub>>>; declare function assertDidRelay(receipt: ContractReceipt<any>): { charge: any; from: any; paymaster: any; relayManager: any; relayWorker: any; selector: any; status: any; to: any; }; declare function assertDidRelaySuccessfully(receipt: ContractReceipt<any>): void; declare function assertDidRelayWithError(receipt: ContractReceipt<any>): void; declare function assertDidRelayWithCharge(receipt: ContractReceipt<any>, amount: BigNumberish, tolerance?: BigNumberish): void; declare function assertPaymasterDidReject(receipt: ContractReceipt<any>): { from: any; innerGasUsed: any; paymaster: any; reason: any; relayManager: any; relayWorker: any; selector: any; to: any; }; declare function assertPaymasterDidRejectForReason(receipt: ContractReceipt<any>, reason: string): void; declare function calcMlnValueAndBurnAmountForSharesBuyback({ valueInterpreter, mln, denominationAsset, sharesSupply, gav, buybackSharesAmount, }: { valueInterpreter: ValueInterpreter; mln: AddressLike; denominationAsset: AddressLike; sharesSupply: BigNumberish; gav: BigNumberish; buybackSharesAmount: BigNumberish; }): Promise<{ mlnAmountToBurn: BigNumber; mlnValue: BigNumber; }>; declare function generateMerkleTreeForContractProof({ itemArrays, itemTypes, }: { itemArrays: any[]; itemTypes: string[]; }): { leaves: string[]; root: string; tree: MerkleTree; }; declare function sendEthBySelfDestruct({ signer, recipient, amount, }: { signer: SignerWithAddress; recipient: AddressLike; amount?: BigNumberish; }): Promise<void>; declare function transactionTimestamp(receipt: ContractReceipt<any>): Promise<number>; declare function addNewAssetsToFund({ signer, comptrollerProxy, integrationManager, assets, amounts, provider, }: { signer: SignerWithAddress; comptrollerProxy: ComptrollerLib; integrationManager: IntegrationManager; assets: StandardToken[]; amounts?: BigNumberish[]; provider: EthereumTestnetProvider; }): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: _enzymefinance_ethers.AddressLike, _actionId: BigNumberish, _callArgs: ethers.BytesLike], void, ComptrollerLib>>>; declare function updateChainlinkAggregator(aggregator: MockChainlinkPriceSource, price?: BigNumberish): Promise<void>; declare function getAssetBalances({ account, assets }: { account: AddressLike; assets: AddressLike[]; }): Promise<ethers.BigNumber[]>; declare function getAssetUnit(asset: StandardToken): Promise<ethers.BigNumber>; declare function createFundDeployer({ deployer, externalPositionManager, dispatcher, gasRelayPaymasterFactory, valueInterpreter, vaultLib, setOnDispatcher, setReleaseLive, }: { deployer: Signer; externalPositionManager: ExternalPositionManager; dispatcher: Dispatcher; feeManager: FeeManager; gasRelayPaymasterFactory: GasRelayPaymasterFactory; integrationManager: IntegrationManager; policyManager: PolicyManager; valueInterpreter: ValueInterpreter; vaultLib: VaultLib; setOnDispatcher?: boolean; setReleaseLive?: boolean; }): Promise<FundDeployer>; declare function callOnExtension({ comptrollerProxy, extension, actionId, callArgs, signer, }: { comptrollerProxy: ComptrollerLib; extension: AddressLike; actionId: BigNumberish; callArgs?: BytesLike; signer?: SignerWithAddress; }): Promise<any>; declare function aaveDebtPositionAddCollateral({ comptrollerProxy, externalPositionManager, signer, aTokens, amounts, externalPositionProxy, }: { comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; signer: SignerWithAddress; aTokens: AddressLike[]; amounts: BigNumberish[]; externalPositionProxy: AddressLike; }): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: ethers.BytesLike], void, ComptrollerLib>>>; declare function aaveDebtPositionBorrow({ comptrollerProxy, externalPositionManager, signer, tokens, amounts, externalPositionProxy, }: { comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; signer: SignerWithAddress; tokens: AddressLike[]; amounts: BigNumberish[]; externalPositionProxy: AddressLike; }): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: ethers.BytesLike], void, ComptrollerLib>>>; declare function aaveDebtPositionClaimRewards({ comptrollerProxy, externalPositionManager, signer, assets, externalPositionProxy, }: { comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; signer: SignerWithAddress; assets: AddressLike[]; externalPositionProxy: AddressLike; }): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: ethers.BytesLike], void, ComptrollerLib>>>; declare function aaveDebtPositionRemoveCollateral({ comptrollerProxy, externalPositionManager, signer, aTokens, amounts, externalPositionProxy, }: { comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; signer: SignerWithAddress; aTokens: AddressLike[]; amounts: BigNumberish[]; externalPositionProxy: AddressLike; }): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: ethers.BytesLike], void, ComptrollerLib>>>; declare function aaveDebtPositionRepayBorrow({ comptrollerProxy, externalPositionManager, signer, tokens, amounts, externalPositionProxy, }: { comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; signer: SignerWithAddress; tokens: AddressLike[]; amounts: BigNumberish[]; externalPositionProxy: AddressLike; }): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: ethers.BytesLike], void, ComptrollerLib>>>; declare function createAaveDebtPosition({ signer, comptrollerProxy, externalPositionManager, }: { signer: SignerWithAddress; comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; }): Promise<{ externalPositionProxy: _enzymefinance_protocol.IExternalPositionProxy; receipt: _enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: ethers.BytesLike], void, ComptrollerLib>>; }>; declare function callOnExternalPosition({ signer, comptrollerProxy, externalPositionManager, externalPositionProxy, actionId, actionArgs, }: { signer: SignerWithAddress; comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; externalPositionProxy: AddressLike; actionId: BigNumberish; actionArgs: BytesLike; }): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: BytesLike], void, ComptrollerLib>>>; declare function createExternalPosition({ signer, comptrollerProxy, externalPositionManager, externalPositionTypeId, initializationData, callOnExternalPositionData, }: { signer: SignerWithAddress; comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; externalPositionTypeId: BigNumberish; initializationData?: BytesLike; callOnExternalPositionData?: BytesLike; }): Promise<{ externalPositionProxy: IExternalPositionProxy; receipt: _enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: BytesLike], void, ComptrollerLib>>; }>; declare function reactivateExternalPosition({ signer, comptrollerProxy, externalPositionManager, externalPositionProxy, }: { signer: SignerWithAddress; comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; externalPositionProxy: AddressLike; }): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: BytesLike], void, ComptrollerLib>>>; declare function removeExternalPosition({ signer, comptrollerProxy, externalPositionManager, externalPositionProxy, }: { signer: SignerWithAddress; comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; externalPositionProxy: AddressLike; }): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: BytesLike], void, ComptrollerLib>>>; declare function arbitraryLoanPositionCallOnAccountingModule({ comptrollerProxy, externalPositionManager, signer, externalPositionProxy, }: { comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; signer: SignerWithAddress; externalPositionProxy: AddressLike; }): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: BytesLike], void, ComptrollerLib>>>; declare function arbitraryLoanPositionCloseLoan({ comptrollerProxy, externalPositionManager, signer, externalPositionProxy, extraAssetsToSweep, }: { comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; signer: SignerWithAddress; externalPositionProxy: AddressLike; extraAssetsToSweep?: AddressLike[]; }): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: BytesLike], void, ComptrollerLib>>>; declare function arbitraryLoanPositionConfigureLoan({ comptrollerProxy, externalPositionManager, signer, externalPositionProxy, borrower, loanAsset, amount, accountingModule, accountingModuleConfigData, description, }: { comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; signer: SignerWithAddress; externalPositionProxy: AddressLike; borrower: AddressLike; loanAsset: AddressLike; amount: BigNumberish; accountingModule: AddressLike; accountingModuleConfigData: BytesLike; description?: string; }): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: BytesLike], void, ComptrollerLib>>>; declare function arbitraryLoanPositionReconcile({ comptrollerProxy, externalPositionManager, signer, externalPositionProxy, extraAssetsToSweep, }: { comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; signer: SignerWithAddress; externalPositionProxy: AddressLike; extraAssetsToSweep?: AddressLike[]; }): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: BytesLike], void, ComptrollerLib>>>; declare function arbitraryLoanPositionUpdateBorrowableAmount({ comptrollerProxy, externalPositionManager, signer, externalPositionProxy, amountDelta, }: { comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; signer: SignerWithAddress; externalPositionProxy: AddressLike; amountDelta: BigNumberish; }): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: BytesLike], void, ComptrollerLib>>>; declare function createArbitraryLoanPosition({ signer, comptrollerProxy, externalPositionManager, }: { signer: SignerWithAddress; comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; }): Promise<{ externalPositionProxy: _enzymefinance_protocol.IExternalPositionProxy; receipt: _enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: BytesLike], void, ComptrollerLib>>; }>; declare function compoundDebtPositionAddCollateral({ comptrollerProxy, externalPositionManager, fundOwner, assets, amounts, externalPositionProxy, cTokens, }: { comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; fundOwner: SignerWithAddress; assets: AddressLike[]; cTokens: AddressLike[]; amounts: BigNumberish[]; externalPositionProxy: AddressLike; }): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: ethers.BytesLike], void, ComptrollerLib>>>; declare function compoundDebtPositionBorrow({ comptrollerProxy, externalPositionManager, fundOwner, externalPositionProxy, assets, amounts, cTokens, }: { comptrollerProxy: ComptrollerLib; vaultProxy: VaultLib; externalPositionManager: ExternalPositionManager; fundOwner: SignerWithAddress; externalPositionProxy: AddressLike; assets: AddressLike[]; amounts: BigNumberish[]; cTokens: AddressLike[]; }): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: ethers.BytesLike], void, ComptrollerLib>>>; declare function compoundDebtPositionClaimComp({ comptrollerProxy, externalPositionManager, fundOwner, externalPositionProxy, }: { comptrollerProxy: ComptrollerLib; vaultProxy: VaultLib; externalPositionManager: ExternalPositionManager; fundOwner: SignerWithAddress; externalPositionProxy: AddressLike; }): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: ethers.BytesLike], void, ComptrollerLib>>>; declare function compoundDebtPositionRemoveCollateral({ comptrollerProxy, externalPositionManager, fundOwner, assets, amounts, externalPositionProxy, cTokens, }: { comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; fundOwner: SignerWithAddress; assets: AddressLike[]; amounts: BigNumberish[]; externalPositionProxy: AddressLike; cTokens: AddressLike[]; }): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: ethers.BytesLike], void, ComptrollerLib>>>; declare function compoundDebtPositionRepayBorrow({ comptrollerProxy, externalPositionManager, fundOwner, assets, amounts, externalPositionProxy, cTokens, }: { comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; fundOwner: SignerWithAddress; assets: AddressLike[]; amounts: BigNumberish[]; externalPositionProxy: AddressLike; cTokens: AddressLike[]; }): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: ethers.BytesLike], void, ComptrollerLib>>>; declare function createCompoundDebtPosition({ signer, comptrollerProxy, externalPositionManager, }: { signer: SignerWithAddress; comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; }): Promise<{ externalPositionProxy: _enzymefinance_protocol.IExternalPositionProxy; receipt: _enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: ethers.BytesLike], void, ComptrollerLib>>; }>; declare function createConvexVotingPosition({ signer, comptrollerProxy, externalPositionManager, }: { signer: SignerWithAddress; comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; }): Promise<{ externalPositionProxy: _enzymefinance_protocol.IExternalPositionProxy; receipt: _enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: ethers.BytesLike], void, ComptrollerLib>>; }>; declare function convexVotingPositionClaimRewards({ comptrollerProxy, externalPositionManager, signer, externalPositionProxy, claimLockerRewards, extraRewardTokens, votiumClaims, unstakeCvxCrv, allTokensToTransfer, }: { comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; signer: SignerWithAddress; externalPositionProxy: AddressLike; claimLockerRewards: boolean; extraRewardTokens: AddressLike[]; votiumClaims: VotiumClaimParam[]; unstakeCvxCrv: boolean; allTokensToTransfer: AddressLike[]; }): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: ethers.BytesLike], void, ComptrollerLib>>>; declare function convexVotingPositionDelegate({ comptrollerProxy, externalPositionManager, signer, externalPositionProxy, delegatee, }: { comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; signer: SignerWithAddress; externalPositionProxy: AddressLike; delegatee: AddressLike; }): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: ethers.BytesLike], void, ComptrollerLib>>>; declare function convexVotingPositionLock({ comptrollerProxy, externalPositionManager, signer, externalPositionProxy, amount, spendRatio, }: { comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; signer: SignerWithAddress; externalPositionProxy: AddressLike; amount: BigNumberish; spendRatio?: BigNumberish; }): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: ethers.BytesLike], void, ComptrollerLib>>>; declare function convexVotingPositionRelock({ comptrollerProxy, externalPositionManager, signer, externalPositionProxy, }: { comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; signer: SignerWithAddress; externalPositionProxy: AddressLike; }): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: ethers.BytesLike], void, ComptrollerLib>>>; declare function convexVotingPositionWithdraw({ comptrollerProxy, externalPositionManager, signer, externalPositionProxy, }: { comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; signer: SignerWithAddress; externalPositionProxy: AddressLike; }): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: ethers.BytesLike], void, ComptrollerLib>>>; interface ILiquityTroveManager extends Contract<ILiquityTroveManager> { getBorrowingFee: Call<(_LUSDDebt: BigNumberish) => BigNumber>; } declare const ILiquityTroveManager: _enzymefinance_ethers.ContractFactory<ILiquityTroveManager, never>; interface ILiquityHintHelper extends Contract<ILiquityHintHelper> { getApproxHint: Call<(_cr: BigNumberish, _numTrials: BigNumberish, _inputRandomSeed: BigNumberish) => [hintAddress_: AddressLike, diff_: BigNumber, latestRandomSeed_: BigNumber]>; } declare const ILiquityHintHelper: _enzymefinance_ethers.ContractFactory<ILiquityHintHelper, never>; interface ILiquitySortedTroves extends Contract<ILiquitySortedTroves> { findInsertPosition: Call<(_icr: BigNumberish, _prevId: AddressLike, _nextId: AddressLike) => [prevId_: AddressLike, nextId_: AddressLike]>; } declare const ILiquitySortedTroves: _enzymefinance_ethers.ContractFactory<ILiquitySortedTroves, never>; declare function createLiquityDebtPosition({ signer, comptrollerProxy, externalPositionManager, }: { signer: SignerWithAddress; comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; }): Promise<{ externalPositionProxy: _enzymefinance_protocol.IExternalPositionProxy; receipt: _enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: utils.BytesLike], void, ComptrollerLib>>; }>; declare function liquityCalcHints({ collateralAmount, debtAmount, // Total debt, inclusive of fees numTrials, // See note above for recommended value. This helper uses a static value for testing purposes. liquitySortedTroves, liquityHintHelper, inputRandomSeed, }: { collateralAmount: BigNumber; debtAmount: BigNumber; numTrials?: BigNumber; liquitySortedTroves: ILiquitySortedTroves; liquityHintHelper: ILiquityHintHelper; inputRandomSeed?: BigNumber; }): Promise<{ lowerHint: AddressLike; upperHint: AddressLike; }>; declare function liquityDebtPositionAddCollateral({ comptrollerProxy, externalPositionManager, signer, collateralAmount, upperHint, lowerHint, externalPositionProxy, }: { comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; signer: SignerWithAddress; collateralAmount: BigNumberish; upperHint: AddressLike; lowerHint: AddressLike; externalPositionProxy: AddressLike; }): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: utils.BytesLike], void, ComptrollerLib>>>; declare function liquityDebtPositionBorrow({ comptrollerProxy, externalPositionManager, signer, maxFeePercentage, lusdAmount, upperHint, lowerHint, externalPositionProxy, }: { comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; signer: SignerWithAddress; maxFeePercentage: BigNumberish; lusdAmount: BigNumberish; upperHint: AddressLike; lowerHint: AddressLike; externalPositionProxy: AddressLike; }): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: utils.BytesLike], void, ComptrollerLib>>>; declare function liquityDebtPositionCloseTrove({ comptrollerProxy, externalPositionManager, signer, externalPositionProxy, }: { comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; signer: SignerWithAddress; externalPositionProxy: AddressLike; }): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: utils.BytesLike], void, ComptrollerLib>>>; declare function liquityDebtPositionOpenTrove({ comptrollerProxy, externalPositionManager, signer, maxFeePercentage, collateralAmount, lusdAmount, upperHint, lowerHint, externalPositionProxy, }: { comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; signer: SignerWithAddress; maxFeePercentage: BigNumberish; collateralAmount: BigNumberish; lusdAmount: BigNumberish; upperHint: AddressLike; lowerHint: AddressLike; externalPositionProxy: AddressLike; }): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: utils.BytesLike], void, ComptrollerLib>>>; declare function liquityDebtPositionRemoveCollateral({ comptrollerProxy, externalPositionManager, signer, collateralAmount, upperHint, lowerHint, externalPositionProxy, }: { comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; signer: SignerWithAddress; collateralAmount: BigNumberish; upperHint: AddressLike; lowerHint: AddressLike; externalPositionProxy: AddressLike; }): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: utils.BytesLike], void, ComptrollerLib>>>; declare function liquityDebtPositionRepay({ comptrollerProxy, externalPositionManager, signer, lusdAmount, upperHint, lowerHint, externalPositionProxy, }: { comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; signer: SignerWithAddress; lusdAmount: BigNumberish; upperHint: AddressLike; lowerHint: AddressLike; externalPositionProxy: AddressLike; }): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: utils.BytesLike], void, ComptrollerLib>>>; declare function createMapleLiquidityPosition({ signer, comptrollerProxy, externalPositionManager, }: { signer: SignerWithAddress; comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; }): Promise<{ externalPositionProxy: _enzymefinance_protocol.IExternalPositionProxy; receipt: _enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: ethers.BytesLike], void, ComptrollerLib>>; }>; declare function mapleLiquidityPositionClaimInterest({ comptrollerProxy, externalPositionManager, signer, pool, externalPositionProxy, }: { comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; signer: SignerWithAddress; pool: AddressLike; externalPositionProxy: AddressLike; }): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: ethers.BytesLike], void, ComptrollerLib>>>; declare function mapleLiquidityPositionClaimRewards({ comptrollerProxy, externalPositionManager, signer, rewardsContract, externalPositionProxy, }: { comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; signer: SignerWithAddress; rewardsContract: AddressLike; externalPositionProxy: AddressLike; }): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: ethers.BytesLike], void, ComptrollerLib>>>; declare function mapleLiquidityPositionIntendToRedeem({ comptrollerProxy, externalPositionManager, signer, pool, externalPositionProxy, }: { comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; signer: SignerWithAddress; pool: AddressLike; externalPositionProxy: AddressLike; }): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: ethers.BytesLike], void, ComptrollerLib>>>; declare function mapleLiquidityPositionLend({ comptrollerProxy, externalPositionManager, signer, liquidityAssetAmount, pool, externalPositionProxy, }: { comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; signer: SignerWithAddress; pool: AddressLike; liquidityAssetAmount: BigNumberish; externalPositionProxy: AddressLike; }): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: ethers.BytesLike], void, ComptrollerLib>>>; declare function mapleLiquidityPositionLendAndStake({ comptrollerProxy, externalPositionManager, signer, liquidityAssetAmount, pool, rewardsContract, externalPositionProxy, }: { comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; signer: SignerWithAddress; pool: AddressLike; rewardsContract: AddressLike; liquidityAssetAmount: BigNumberish; externalPositionProxy: AddressLike; }): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: ethers.BytesLike], void, ComptrollerLib>>>; declare function mapleLiquidityPositionRedeem({ comptrollerProxy, externalPositionManager, signer, liquidityAssetAmount, pool, externalPositionProxy, }: { comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; signer: SignerWithAddress; liquidityAsset: AddressLike; pool: AddressLike; liquidityAssetAmount: BigNumberish; externalPositionProxy: AddressLike; }): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: ethers.BytesLike], void, ComptrollerLib>>>; declare function mapleLiquidityPositionStake({ comptrollerProxy, externalPositionManager, signer, poolTokenAmount, pool, rewardsContract, externalPositionProxy, }: { comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; signer: SignerWithAddress; poolTokenAmount: BigNumberish; pool: AddressLike; rewardsContract: AddressLike; externalPositionProxy: AddressLike; }): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: ethers.BytesLike], void, ComptrollerLib>>>; declare function mapleLiquidityPositionUnstake({ comptrollerProxy, externalPositionManager, signer, poolTokenAmount, rewardsContract, externalPositionProxy, }: { comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; signer: SignerWithAddress; poolTokenAmount: BigNumberish; rewardsContract: AddressLike; externalPositionProxy: AddressLike; }): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: ethers.BytesLike], void, ComptrollerLib>>>; declare function mapleLiquidityPositionUnstakeAndRedeem({ comptrollerProxy, externalPositionManager, signer, pool, poolTokenAmount, rewardsContract, externalPositionProxy, }: { comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; signer: SignerWithAddress; pool: AddressLike; poolTokenAmount: BigNumberish; rewardsContract: AddressLike; externalPositionProxy: AddressLike; }): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: ethers.BytesLike], void, ComptrollerLib>>>; declare function createMockExternalPosition({ comptrollerProxy, externalPositionManager, externalPositionFactory, defaultActionAssetsToTransfer, defaultActionAmountsToTransfer, defaultActionAssetsToReceive, fundOwner, deployer, }: { comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; externalPositionFactory: ExternalPositionFactory; defaultActionAssetsToTransfer: AddressLike[]; defaultActionAmountsToTransfer: BigNumberish[]; defaultActionAssetsToReceive: AddressLike[]; fundOwner: SignerWithAddress; deployer: SignerWithAddress; }): Promise<{ externalPositionProxy: string; mockExternalPositionParser: MockGenericExternalPositionParser; mockGenericExternalPositionLib: MockGenericExternalPositionLib; receipt: { externalPositionProxy: _enzymefinance_protocol.IExternalPositionProxy; receipt: _enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: ethers.BytesLike], void, ComptrollerLib>>; }; typeId: ethers.BigNumber; }>; declare function mockExternalPositionAddDebtAssets({ signer, comptrollerProxy, externalPositionManager, externalPositionProxy, assets, amounts, }: { signer: SignerWithAddress; comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; externalPositionProxy: AddressLike; assets: AddressLike[]; amounts: BigNumberish[]; }): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: ethers.BytesLike], void, ComptrollerLib>>>; declare function mockExternalPositionAddManagedAssets({ signer, comptrollerProxy, externalPositionManager, externalPositionProxy, assets, amounts, }: { signer: SignerWithAddress; comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; externalPositionProxy: AddressLike; assets: AddressLike[]; amounts: BigNumberish[]; }): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: ethers.BytesLike], void, ComptrollerLib>>>; declare function mockExternalPositionRemoveDebtAssets({ signer, comptrollerProxy, externalPositionManager, externalPositionProxy, assets, amounts, }: { signer: SignerWithAddress; comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; externalPositionProxy: AddressLike; assets: AddressLike[]; amounts: BigNumberish[]; }): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: ethers.BytesLike], void, ComptrollerLib>>>; declare function mockExternalPositionRemoveManagedAssets({ signer, comptrollerProxy, externalPositionManager, externalPositionProxy, assets, amounts, }: { signer: SignerWithAddress; comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; externalPositionProxy: AddressLike; assets: AddressLike[]; amounts: BigNumberish[]; }): Promise<_enzymefinance_ethers.ContractReceipt<_enzymefinance_ethers.SendFunction<[_extension: AddressLike, _actionId: BigNumberish, _callArgs: ethers.BytesLike], void, ComptrollerLib>>>; declare enum NotionalV2MarketIndex { ThreeMonths = "1", SixMonths = "2", OneYear = "3", TwoYears = "4", FiveYears = "5", TenYears = "6", TwentyYears = "7" } declare enum NotionalV2CurrencyId { Eth = "1", Dai = "2", Usdc = "3" } declare function createNotionalV2Position({ signer, comptrollerProxy, externalPositionManager, }: { signer: SignerWithAddress; comptrollerProxy: ComptrollerLib; externalPositionManager: ExternalPositionManager; }): Promise<{ externalPos