@enzymefinance/testutils
Version:
Technology Regulated and Operated Investment Funds
878 lines (858 loc) • 114 kB
TypeScript
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