import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from "ethers"; import type { FunctionFragment, Result, EventFragment } from "@ethersproject/abi"; import type { Listener, Provider } from "@ethersproject/providers"; import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export type ClearingConfigurationStruct = { drawAmount: BigNumberish; trancheDesiredRatios: BigNumberish[]; maxExcessPercentage: BigNumberish; minExcessPercentage: BigNumberish; }; export type ClearingConfigurationStructOutput = [ BigNumber, BigNumber[], BigNumber, BigNumber ] & { drawAmount: BigNumber; trancheDesiredRatios: BigNumber[]; maxExcessPercentage: BigNumber; minExcessPercentage: BigNumber; }; export type LendingPoolInfoStruct = { trancheAddresses: string[]; pendingPool: string; }; export type LendingPoolInfoStructOutput = [string[], string] & { trancheAddresses: string[]; pendingPool: string; }; export type TrancheConfigStruct = { ratio: BigNumberish; interestRate: BigNumberish; minDepositAmount: BigNumberish; maxDepositAmount: BigNumberish; }; export type TrancheConfigStructOutput = [ BigNumber, BigNumber, BigNumber, BigNumber ] & { ratio: BigNumber; interestRate: BigNumber; minDepositAmount: BigNumber; maxDepositAmount: BigNumber; }; export type PoolConfigurationStruct = { tranches: TrancheConfigStruct[]; drawRecipient: string; desiredDrawAmount: BigNumberish; trancheInterestChangeEpochDelay: BigNumberish; targetExcessLiquidityPercentage: BigNumberish; minimumExcessLiquidityPercentage: BigNumberish; }; export type PoolConfigurationStructOutput = [ TrancheConfigStructOutput[], string, BigNumber, BigNumber, BigNumber, BigNumber ] & { tranches: TrancheConfigStructOutput[]; drawRecipient: string; desiredDrawAmount: BigNumber; trancheInterestChangeEpochDelay: BigNumber; targetExcessLiquidityPercentage: BigNumber; minimumExcessLiquidityPercentage: BigNumber; }; export interface ILendingPoolAbiInterface extends utils.Interface { functions: { "acceptDeposit(address,address,uint256)": FunctionFragment; "acceptWithdrawal(address,address,uint256)": FunctionFragment; "allowance(address,address)": FunctionFragment; "applyInterests(uint256)": FunctionFragment; "approve(address,uint256)": FunctionFragment; "availableFunds()": FunctionFragment; "balanceOf(address)": FunctionFragment; "calculateMaximumLossAmount()": FunctionFragment; "claimRepaidLoss(address,address,uint256)": FunctionFragment; "depositFirstLossCapital(uint256)": FunctionFragment; "drawFunds(uint256)": FunctionFragment; "feesOwedAmount()": FunctionFragment; "forceImmediateWithdrawal(address,address,uint256)": FunctionFragment; "getClearingConfig()": FunctionFragment; "getLendingPoolInfo()": FunctionFragment; "isLendingPoolTranche(address)": FunctionFragment; "lendingPoolTrancheCount()": FunctionFragment; "lendingPoolTranches()": FunctionFragment; "pendingPool()": FunctionFragment; "poolConfiguration()": FunctionFragment; "repayLoss(address,uint256,uint256)": FunctionFragment; "repayOwedFunds(uint256)": FunctionFragment; "reportLoss(uint256,bool)": FunctionFragment; "stop()": FunctionFragment; "totalSupply()": FunctionFragment; "trancheConfigurationDepositLimits(address)": FunctionFragment; "trancheIndex(address)": FunctionFragment; "transfer(address,uint256)": FunctionFragment; "transferFrom(address,address,uint256)": FunctionFragment; "updateDesiredDrawAmount(uint256)": FunctionFragment; "updateDrawRecipient(address)": FunctionFragment; "updateMaximumDepositAmount(address,uint256)": FunctionFragment; "updateMinimumDepositAmount(address,uint256)": FunctionFragment; "updateMinimumExcessLiquidityPercentage(uint256)": FunctionFragment; "updateTargetExcessLiquidityPercentage(uint256)": FunctionFragment; "updateTrancheDesiredRatios(uint256[])": FunctionFragment; "updateTrancheInterestRate(address,uint256)": FunctionFragment; "updateTrancheInterestRateChangeEpochDelay(uint256)": FunctionFragment; "userBalance(address)": FunctionFragment; "userOwedAmount()": FunctionFragment; "verifyClearingConfig((uint256,uint256[],uint256,uint256))": FunctionFragment; "withdrawFirstLossCapital(uint256,address)": FunctionFragment; }; getFunction(nameOrSignatureOrTopic: "acceptDeposit" | "acceptWithdrawal" | "allowance" | "applyInterests" | "approve" | "availableFunds" | "balanceOf" | "calculateMaximumLossAmount" | "claimRepaidLoss" | "depositFirstLossCapital" | "drawFunds" | "feesOwedAmount" | "forceImmediateWithdrawal" | "getClearingConfig" | "getLendingPoolInfo" | "isLendingPoolTranche" | "lendingPoolTrancheCount" | "lendingPoolTranches" | "pendingPool" | "poolConfiguration" | "repayLoss" | "repayOwedFunds" | "reportLoss" | "stop" | "totalSupply" | "trancheConfigurationDepositLimits" | "trancheIndex" | "transfer" | "transferFrom" | "updateDesiredDrawAmount" | "updateDrawRecipient" | "updateMaximumDepositAmount" | "updateMinimumDepositAmount" | "updateMinimumExcessLiquidityPercentage" | "updateTargetExcessLiquidityPercentage" | "updateTrancheDesiredRatios" | "updateTrancheInterestRate" | "updateTrancheInterestRateChangeEpochDelay" | "userBalance" | "userOwedAmount" | "verifyClearingConfig" | "withdrawFirstLossCapital"): FunctionFragment; encodeFunctionData(functionFragment: "acceptDeposit", values: [string, string, BigNumberish]): string; encodeFunctionData(functionFragment: "acceptWithdrawal", values: [string, string, BigNumberish]): string; encodeFunctionData(functionFragment: "allowance", values: [string, string]): string; encodeFunctionData(functionFragment: "applyInterests", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "approve", values: [string, BigNumberish]): string; encodeFunctionData(functionFragment: "availableFunds", values?: undefined): string; encodeFunctionData(functionFragment: "balanceOf", values: [string]): string; encodeFunctionData(functionFragment: "calculateMaximumLossAmount", values?: undefined): string; encodeFunctionData(functionFragment: "claimRepaidLoss", values: [string, string, BigNumberish]): string; encodeFunctionData(functionFragment: "depositFirstLossCapital", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "drawFunds", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "feesOwedAmount", values?: undefined): string; encodeFunctionData(functionFragment: "forceImmediateWithdrawal", values: [string, string, BigNumberish]): string; encodeFunctionData(functionFragment: "getClearingConfig", values?: undefined): string; encodeFunctionData(functionFragment: "getLendingPoolInfo", values?: undefined): string; encodeFunctionData(functionFragment: "isLendingPoolTranche", values: [string]): string; encodeFunctionData(functionFragment: "lendingPoolTrancheCount", values?: undefined): string; encodeFunctionData(functionFragment: "lendingPoolTranches", values?: undefined): string; encodeFunctionData(functionFragment: "pendingPool", values?: undefined): string; encodeFunctionData(functionFragment: "poolConfiguration", values?: undefined): string; encodeFunctionData(functionFragment: "repayLoss", values: [string, BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "repayOwedFunds", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "reportLoss", values: [BigNumberish, boolean]): string; encodeFunctionData(functionFragment: "stop", values?: undefined): string; encodeFunctionData(functionFragment: "totalSupply", values?: undefined): string; encodeFunctionData(functionFragment: "trancheConfigurationDepositLimits", values: [string]): string; encodeFunctionData(functionFragment: "trancheIndex", values: [string]): string; encodeFunctionData(functionFragment: "transfer", values: [string, BigNumberish]): string; encodeFunctionData(functionFragment: "transferFrom", values: [string, string, BigNumberish]): string; encodeFunctionData(functionFragment: "updateDesiredDrawAmount", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "updateDrawRecipient", values: [string]): string; encodeFunctionData(functionFragment: "updateMaximumDepositAmount", values: [string, BigNumberish]): string; encodeFunctionData(functionFragment: "updateMinimumDepositAmount", values: [string, BigNumberish]): string; encodeFunctionData(functionFragment: "updateMinimumExcessLiquidityPercentage", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "updateTargetExcessLiquidityPercentage", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "updateTrancheDesiredRatios", values: [BigNumberish[]]): string; encodeFunctionData(functionFragment: "updateTrancheInterestRate", values: [string, BigNumberish]): string; encodeFunctionData(functionFragment: "updateTrancheInterestRateChangeEpochDelay", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "userBalance", values: [string]): string; encodeFunctionData(functionFragment: "userOwedAmount", values?: undefined): string; encodeFunctionData(functionFragment: "verifyClearingConfig", values: [ClearingConfigurationStruct]): string; encodeFunctionData(functionFragment: "withdrawFirstLossCapital", values: [BigNumberish, string]): string; decodeFunctionResult(functionFragment: "acceptDeposit", data: BytesLike): Result; decodeFunctionResult(functionFragment: "acceptWithdrawal", data: BytesLike): Result; decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; decodeFunctionResult(functionFragment: "applyInterests", data: BytesLike): Result; decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; decodeFunctionResult(functionFragment: "availableFunds", data: BytesLike): Result; decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; decodeFunctionResult(functionFragment: "calculateMaximumLossAmount", data: BytesLike): Result; decodeFunctionResult(functionFragment: "claimRepaidLoss", data: BytesLike): Result; decodeFunctionResult(functionFragment: "depositFirstLossCapital", data: BytesLike): Result; decodeFunctionResult(functionFragment: "drawFunds", data: BytesLike): Result; decodeFunctionResult(functionFragment: "feesOwedAmount", data: BytesLike): Result; decodeFunctionResult(functionFragment: "forceImmediateWithdrawal", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getClearingConfig", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getLendingPoolInfo", data: BytesLike): Result; decodeFunctionResult(functionFragment: "isLendingPoolTranche", data: BytesLike): Result; decodeFunctionResult(functionFragment: "lendingPoolTrancheCount", data: BytesLike): Result; decodeFunctionResult(functionFragment: "lendingPoolTranches", data: BytesLike): Result; decodeFunctionResult(functionFragment: "pendingPool", data: BytesLike): Result; decodeFunctionResult(functionFragment: "poolConfiguration", data: BytesLike): Result; decodeFunctionResult(functionFragment: "repayLoss", data: BytesLike): Result; decodeFunctionResult(functionFragment: "repayOwedFunds", data: BytesLike): Result; decodeFunctionResult(functionFragment: "reportLoss", data: BytesLike): Result; decodeFunctionResult(functionFragment: "stop", data: BytesLike): Result; decodeFunctionResult(functionFragment: "totalSupply", data: BytesLike): Result; decodeFunctionResult(functionFragment: "trancheConfigurationDepositLimits", data: BytesLike): Result; decodeFunctionResult(functionFragment: "trancheIndex", data: BytesLike): Result; decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; decodeFunctionResult(functionFragment: "transferFrom", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateDesiredDrawAmount", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateDrawRecipient", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateMaximumDepositAmount", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateMinimumDepositAmount", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateMinimumExcessLiquidityPercentage", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateTargetExcessLiquidityPercentage", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateTrancheDesiredRatios", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateTrancheInterestRate", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateTrancheInterestRateChangeEpochDelay", data: BytesLike): Result; decodeFunctionResult(functionFragment: "userBalance", data: BytesLike): Result; decodeFunctionResult(functionFragment: "userOwedAmount", data: BytesLike): Result; decodeFunctionResult(functionFragment: "verifyClearingConfig", data: BytesLike): Result; decodeFunctionResult(functionFragment: "withdrawFirstLossCapital", data: BytesLike): Result; events: { "Approval(address,address,uint256)": EventFragment; "DepositAccepted(address,address,uint256)": EventFragment; "FeesOwedIncreased(uint256,uint256)": EventFragment; "FirstLossCapitalAdded(uint256)": EventFragment; "FirstLossCapitalLossReported(uint256,uint256)": EventFragment; "FirstLossCapitalWithdrawn(uint256)": EventFragment; "FundsDrawn(uint256)": EventFragment; "ImmediateWithdrawal(address,address,uint256,uint256)": EventFragment; "InterestApplied(address,uint256,uint256)": EventFragment; "LendingPoolStopped()": EventFragment; "LossReported(uint256)": EventFragment; "OwedFundsRepaid(uint256,uint256)": EventFragment; "PaidFees(uint256)": EventFragment; "RemovedTrancheInterestRateUpdate(address,uint256,uint256)": EventFragment; "Transfer(address,address,uint256)": EventFragment; "UpdatedDesiredDrawAmount(uint256)": EventFragment; "UpdatedDrawRecipient(address)": EventFragment; "UpdatedMaximumDepositAmount(address,uint256)": EventFragment; "UpdatedMinimumDepositAmount(address,uint256)": EventFragment; "UpdatedMinimumExcessLiquidityPercentage(uint256)": EventFragment; "UpdatedTargetExcessLiquidityPercentage(uint256)": EventFragment; "UpdatedTrancheDesiredRatios(uint256[])": EventFragment; "UpdatedTrancheInterestRate(address,uint256,uint256)": EventFragment; "UpdatedTrancheInterestRateChangeEpochDelay(uint256)": EventFragment; "WithdrawalAccepted(address,address,uint256,uint256)": EventFragment; }; getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment; getEvent(nameOrSignatureOrTopic: "DepositAccepted"): EventFragment; getEvent(nameOrSignatureOrTopic: "FeesOwedIncreased"): EventFragment; getEvent(nameOrSignatureOrTopic: "FirstLossCapitalAdded"): EventFragment; getEvent(nameOrSignatureOrTopic: "FirstLossCapitalLossReported"): EventFragment; getEvent(nameOrSignatureOrTopic: "FirstLossCapitalWithdrawn"): EventFragment; getEvent(nameOrSignatureOrTopic: "FundsDrawn"): EventFragment; getEvent(nameOrSignatureOrTopic: "ImmediateWithdrawal"): EventFragment; getEvent(nameOrSignatureOrTopic: "InterestApplied"): EventFragment; getEvent(nameOrSignatureOrTopic: "LendingPoolStopped"): EventFragment; getEvent(nameOrSignatureOrTopic: "LossReported"): EventFragment; getEvent(nameOrSignatureOrTopic: "OwedFundsRepaid"): EventFragment; getEvent(nameOrSignatureOrTopic: "PaidFees"): EventFragment; getEvent(nameOrSignatureOrTopic: "RemovedTrancheInterestRateUpdate"): EventFragment; getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment; getEvent(nameOrSignatureOrTopic: "UpdatedDesiredDrawAmount"): EventFragment; getEvent(nameOrSignatureOrTopic: "UpdatedDrawRecipient"): EventFragment; getEvent(nameOrSignatureOrTopic: "UpdatedMaximumDepositAmount"): EventFragment; getEvent(nameOrSignatureOrTopic: "UpdatedMinimumDepositAmount"): EventFragment; getEvent(nameOrSignatureOrTopic: "UpdatedMinimumExcessLiquidityPercentage"): EventFragment; getEvent(nameOrSignatureOrTopic: "UpdatedTargetExcessLiquidityPercentage"): EventFragment; getEvent(nameOrSignatureOrTopic: "UpdatedTrancheDesiredRatios"): EventFragment; getEvent(nameOrSignatureOrTopic: "UpdatedTrancheInterestRate"): EventFragment; getEvent(nameOrSignatureOrTopic: "UpdatedTrancheInterestRateChangeEpochDelay"): EventFragment; getEvent(nameOrSignatureOrTopic: "WithdrawalAccepted"): EventFragment; } export interface ApprovalEventObject { owner: string; spender: string; value: BigNumber; } export type ApprovalEvent = TypedEvent<[ string, string, BigNumber ], ApprovalEventObject>; export type ApprovalEventFilter = TypedEventFilter; export interface DepositAcceptedEventObject { user: string; tranche: string; amount: BigNumber; } export type DepositAcceptedEvent = TypedEvent<[ string, string, BigNumber ], DepositAcceptedEventObject>; export type DepositAcceptedEventFilter = TypedEventFilter; export interface FeesOwedIncreasedEventObject { epoch: BigNumber; feesIncreasedAmount: BigNumber; } export type FeesOwedIncreasedEvent = TypedEvent<[ BigNumber, BigNumber ], FeesOwedIncreasedEventObject>; export type FeesOwedIncreasedEventFilter = TypedEventFilter; export interface FirstLossCapitalAddedEventObject { amountAdded: BigNumber; } export type FirstLossCapitalAddedEvent = TypedEvent<[ BigNumber ], FirstLossCapitalAddedEventObject>; export type FirstLossCapitalAddedEventFilter = TypedEventFilter; export interface FirstLossCapitalLossReportedEventObject { lossId: BigNumber; amount: BigNumber; } export type FirstLossCapitalLossReportedEvent = TypedEvent<[ BigNumber, BigNumber ], FirstLossCapitalLossReportedEventObject>; export type FirstLossCapitalLossReportedEventFilter = TypedEventFilter; export interface FirstLossCapitalWithdrawnEventObject { amountWithdrawn: BigNumber; } export type FirstLossCapitalWithdrawnEvent = TypedEvent<[ BigNumber ], FirstLossCapitalWithdrawnEventObject>; export type FirstLossCapitalWithdrawnEventFilter = TypedEventFilter; export interface FundsDrawnEventObject { amount: BigNumber; } export type FundsDrawnEvent = TypedEvent<[BigNumber], FundsDrawnEventObject>; export type FundsDrawnEventFilter = TypedEventFilter; export interface ImmediateWithdrawalEventObject { user: string; tranche: string; shares: BigNumber; amount: BigNumber; } export type ImmediateWithdrawalEvent = TypedEvent<[ string, string, BigNumber, BigNumber ], ImmediateWithdrawalEventObject>; export type ImmediateWithdrawalEventFilter = TypedEventFilter; export interface InterestAppliedEventObject { tranche: string; epoch: BigNumber; interestAmount: BigNumber; } export type InterestAppliedEvent = TypedEvent<[ string, BigNumber, BigNumber ], InterestAppliedEventObject>; export type InterestAppliedEventFilter = TypedEventFilter; export interface LendingPoolStoppedEventObject { } export type LendingPoolStoppedEvent = TypedEvent<[ ], LendingPoolStoppedEventObject>; export type LendingPoolStoppedEventFilter = TypedEventFilter; export interface LossReportedEventObject { amount: BigNumber; } export type LossReportedEvent = TypedEvent<[ BigNumber ], LossReportedEventObject>; export type LossReportedEventFilter = TypedEventFilter; export interface OwedFundsRepaidEventObject { amountForUsers: BigNumber; amountForFees: BigNumber; } export type OwedFundsRepaidEvent = TypedEvent<[ BigNumber, BigNumber ], OwedFundsRepaidEventObject>; export type OwedFundsRepaidEventFilter = TypedEventFilter; export interface PaidFeesEventObject { feesPaid: BigNumber; } export type PaidFeesEvent = TypedEvent<[BigNumber], PaidFeesEventObject>; export type PaidFeesEventFilter = TypedEventFilter; export interface RemovedTrancheInterestRateUpdateEventObject { tranche: string; applicableEpoch: BigNumber; arrayIndex: BigNumber; } export type RemovedTrancheInterestRateUpdateEvent = TypedEvent<[ string, BigNumber, BigNumber ], RemovedTrancheInterestRateUpdateEventObject>; export type RemovedTrancheInterestRateUpdateEventFilter = TypedEventFilter; export interface TransferEventObject { from: string; to: string; value: BigNumber; } export type TransferEvent = TypedEvent<[ string, string, BigNumber ], TransferEventObject>; export type TransferEventFilter = TypedEventFilter; export interface UpdatedDesiredDrawAmountEventObject { desiredDrawAmount: BigNumber; } export type UpdatedDesiredDrawAmountEvent = TypedEvent<[ BigNumber ], UpdatedDesiredDrawAmountEventObject>; export type UpdatedDesiredDrawAmountEventFilter = TypedEventFilter; export interface UpdatedDrawRecipientEventObject { drawRecipient: string; } export type UpdatedDrawRecipientEvent = TypedEvent<[ string ], UpdatedDrawRecipientEventObject>; export type UpdatedDrawRecipientEventFilter = TypedEventFilter; export interface UpdatedMaximumDepositAmountEventObject { tranche: string; amount: BigNumber; } export type UpdatedMaximumDepositAmountEvent = TypedEvent<[ string, BigNumber ], UpdatedMaximumDepositAmountEventObject>; export type UpdatedMaximumDepositAmountEventFilter = TypedEventFilter; export interface UpdatedMinimumDepositAmountEventObject { tranche: string; amount: BigNumber; } export type UpdatedMinimumDepositAmountEvent = TypedEvent<[ string, BigNumber ], UpdatedMinimumDepositAmountEventObject>; export type UpdatedMinimumDepositAmountEventFilter = TypedEventFilter; export interface UpdatedMinimumExcessLiquidityPercentageEventObject { percentage: BigNumber; } export type UpdatedMinimumExcessLiquidityPercentageEvent = TypedEvent<[ BigNumber ], UpdatedMinimumExcessLiquidityPercentageEventObject>; export type UpdatedMinimumExcessLiquidityPercentageEventFilter = TypedEventFilter; export interface UpdatedTargetExcessLiquidityPercentageEventObject { percentage: BigNumber; } export type UpdatedTargetExcessLiquidityPercentageEvent = TypedEvent<[ BigNumber ], UpdatedTargetExcessLiquidityPercentageEventObject>; export type UpdatedTargetExcessLiquidityPercentageEventFilter = TypedEventFilter; export interface UpdatedTrancheDesiredRatiosEventObject { ratios: BigNumber[]; } export type UpdatedTrancheDesiredRatiosEvent = TypedEvent<[ BigNumber[] ], UpdatedTrancheDesiredRatiosEventObject>; export type UpdatedTrancheDesiredRatiosEventFilter = TypedEventFilter; export interface UpdatedTrancheInterestRateEventObject { tranche: string; applicableEpoch: BigNumber; newInterestRate: BigNumber; } export type UpdatedTrancheInterestRateEvent = TypedEvent<[ string, BigNumber, BigNumber ], UpdatedTrancheInterestRateEventObject>; export type UpdatedTrancheInterestRateEventFilter = TypedEventFilter; export interface UpdatedTrancheInterestRateChangeEpochDelayEventObject { epochDelay: BigNumber; } export type UpdatedTrancheInterestRateChangeEpochDelayEvent = TypedEvent<[ BigNumber ], UpdatedTrancheInterestRateChangeEpochDelayEventObject>; export type UpdatedTrancheInterestRateChangeEpochDelayEventFilter = TypedEventFilter; export interface WithdrawalAcceptedEventObject { user: string; tranche: string; shares: BigNumber; assetAmount: BigNumber; } export type WithdrawalAcceptedEvent = TypedEvent<[ string, string, BigNumber, BigNumber ], WithdrawalAcceptedEventObject>; export type WithdrawalAcceptedEventFilter = TypedEventFilter; export interface ILendingPoolAbi extends BaseContract { connect(signerOrProvider: Signer | Provider | string): this; attach(addressOrName: string): this; deployed(): Promise; interface: ILendingPoolAbiInterface; queryFilter(event: TypedEventFilter, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>; listeners(eventFilter?: TypedEventFilter): Array>; listeners(eventName?: string): Array; removeAllListeners(eventFilter: TypedEventFilter): this; removeAllListeners(eventName?: string): this; off: OnEvent; on: OnEvent; once: OnEvent; removeListener: OnEvent; functions: { acceptDeposit(tranche: string, user: string, acceptedAmount: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; acceptWithdrawal(tranche: string, user: string, acceptedShares: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; allowance(owner: string, spender: string, overrides?: CallOverrides): Promise<[BigNumber]>; applyInterests(epoch: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; approve(spender: string, value: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; availableFunds(overrides?: CallOverrides): Promise<[BigNumber]>; balanceOf(account: string, overrides?: CallOverrides): Promise<[BigNumber]>; calculateMaximumLossAmount(overrides?: CallOverrides): Promise<[BigNumber] & { maximumLossAmount: BigNumber; }>; claimRepaidLoss(user: string, tranche: string, lossId: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; depositFirstLossCapital(amount: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; drawFunds(amount: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; feesOwedAmount(overrides?: CallOverrides): Promise<[BigNumber]>; forceImmediateWithdrawal(tranche: string, user: string, sharesToWithdraw: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; getClearingConfig(overrides?: CallOverrides): Promise<[ ClearingConfigurationStructOutput ] & { clearingConfig: ClearingConfigurationStructOutput; }>; getLendingPoolInfo(overrides?: CallOverrides): Promise<[LendingPoolInfoStructOutput]>; isLendingPoolTranche(tranche: string, overrides?: CallOverrides): Promise<[boolean]>; lendingPoolTrancheCount(overrides?: CallOverrides): Promise<[BigNumber]>; lendingPoolTranches(overrides?: CallOverrides): Promise<[string[]]>; pendingPool(overrides?: CallOverrides): Promise<[string]>; poolConfiguration(overrides?: CallOverrides): Promise<[PoolConfigurationStructOutput]>; repayLoss(tranche: string, lossId: BigNumberish, amount: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; repayOwedFunds(amount: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; reportLoss(lossAmount: BigNumberish, doMintLossTokens: boolean, overrides?: Overrides & { from?: string; }): Promise; stop(overrides?: Overrides & { from?: string; }): Promise; totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>; trancheConfigurationDepositLimits(tranche: string, overrides?: CallOverrides): Promise<[ BigNumber, BigNumber ] & { minDepositAmount: BigNumber; maxDepositAmount: BigNumber; }>; trancheIndex(tranche: string, overrides?: CallOverrides): Promise<[BigNumber]>; transfer(to: string, value: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; transferFrom(from: string, to: string, value: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; updateDesiredDrawAmount(desiredDrawAmount: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; updateDrawRecipient(drawRecipient: string, overrides?: Overrides & { from?: string; }): Promise; updateMaximumDepositAmount(tranche: string, maximumDepositAmount: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; updateMinimumDepositAmount(tranche: string, minimumDepositAmount: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; updateMinimumExcessLiquidityPercentage(minimumExcessLiquidityPercentage: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; updateTargetExcessLiquidityPercentage(targetExcessLiquidityPercentage: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; updateTrancheDesiredRatios(ratios: BigNumberish[], overrides?: Overrides & { from?: string; }): Promise; updateTrancheInterestRate(tranche: string, interestRate: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; updateTrancheInterestRateChangeEpochDelay(epochDelay: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; userBalance(user: string, overrides?: CallOverrides): Promise<[BigNumber]>; userOwedAmount(overrides?: CallOverrides): Promise<[BigNumber]>; verifyClearingConfig(clearingConfig: ClearingConfigurationStruct, overrides?: CallOverrides): Promise<[void]>; withdrawFirstLossCapital(withdrawAmount: BigNumberish, withdrawAddress: string, overrides?: Overrides & { from?: string; }): Promise; }; acceptDeposit(tranche: string, user: string, acceptedAmount: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; acceptWithdrawal(tranche: string, user: string, acceptedShares: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; allowance(owner: string, spender: string, overrides?: CallOverrides): Promise; applyInterests(epoch: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; approve(spender: string, value: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; availableFunds(overrides?: CallOverrides): Promise; balanceOf(account: string, overrides?: CallOverrides): Promise; calculateMaximumLossAmount(overrides?: CallOverrides): Promise; claimRepaidLoss(user: string, tranche: string, lossId: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; depositFirstLossCapital(amount: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; drawFunds(amount: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; feesOwedAmount(overrides?: CallOverrides): Promise; forceImmediateWithdrawal(tranche: string, user: string, sharesToWithdraw: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; getClearingConfig(overrides?: CallOverrides): Promise; getLendingPoolInfo(overrides?: CallOverrides): Promise; isLendingPoolTranche(tranche: string, overrides?: CallOverrides): Promise; lendingPoolTrancheCount(overrides?: CallOverrides): Promise; lendingPoolTranches(overrides?: CallOverrides): Promise; pendingPool(overrides?: CallOverrides): Promise; poolConfiguration(overrides?: CallOverrides): Promise; repayLoss(tranche: string, lossId: BigNumberish, amount: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; repayOwedFunds(amount: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; reportLoss(lossAmount: BigNumberish, doMintLossTokens: boolean, overrides?: Overrides & { from?: string; }): Promise; stop(overrides?: Overrides & { from?: string; }): Promise; totalSupply(overrides?: CallOverrides): Promise; trancheConfigurationDepositLimits(tranche: string, overrides?: CallOverrides): Promise<[ BigNumber, BigNumber ] & { minDepositAmount: BigNumber; maxDepositAmount: BigNumber; }>; trancheIndex(tranche: string, overrides?: CallOverrides): Promise; transfer(to: string, value: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; transferFrom(from: string, to: string, value: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; updateDesiredDrawAmount(desiredDrawAmount: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; updateDrawRecipient(drawRecipient: string, overrides?: Overrides & { from?: string; }): Promise; updateMaximumDepositAmount(tranche: string, maximumDepositAmount: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; updateMinimumDepositAmount(tranche: string, minimumDepositAmount: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; updateMinimumExcessLiquidityPercentage(minimumExcessLiquidityPercentage: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; updateTargetExcessLiquidityPercentage(targetExcessLiquidityPercentage: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; updateTrancheDesiredRatios(ratios: BigNumberish[], overrides?: Overrides & { from?: string; }): Promise; updateTrancheInterestRate(tranche: string, interestRate: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; updateTrancheInterestRateChangeEpochDelay(epochDelay: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; userBalance(user: string, overrides?: CallOverrides): Promise; userOwedAmount(overrides?: CallOverrides): Promise; verifyClearingConfig(clearingConfig: ClearingConfigurationStruct, overrides?: CallOverrides): Promise; withdrawFirstLossCapital(withdrawAmount: BigNumberish, withdrawAddress: string, overrides?: Overrides & { from?: string; }): Promise; callStatic: { acceptDeposit(tranche: string, user: string, acceptedAmount: BigNumberish, overrides?: CallOverrides): Promise; acceptWithdrawal(tranche: string, user: string, acceptedShares: BigNumberish, overrides?: CallOverrides): Promise; allowance(owner: string, spender: string, overrides?: CallOverrides): Promise; applyInterests(epoch: BigNumberish, overrides?: CallOverrides): Promise; approve(spender: string, value: BigNumberish, overrides?: CallOverrides): Promise; availableFunds(overrides?: CallOverrides): Promise; balanceOf(account: string, overrides?: CallOverrides): Promise; calculateMaximumLossAmount(overrides?: CallOverrides): Promise; claimRepaidLoss(user: string, tranche: string, lossId: BigNumberish, overrides?: CallOverrides): Promise; depositFirstLossCapital(amount: BigNumberish, overrides?: CallOverrides): Promise; drawFunds(amount: BigNumberish, overrides?: CallOverrides): Promise; feesOwedAmount(overrides?: CallOverrides): Promise; forceImmediateWithdrawal(tranche: string, user: string, sharesToWithdraw: BigNumberish, overrides?: CallOverrides): Promise; getClearingConfig(overrides?: CallOverrides): Promise; getLendingPoolInfo(overrides?: CallOverrides): Promise; isLendingPoolTranche(tranche: string, overrides?: CallOverrides): Promise; lendingPoolTrancheCount(overrides?: CallOverrides): Promise; lendingPoolTranches(overrides?: CallOverrides): Promise; pendingPool(overrides?: CallOverrides): Promise; poolConfiguration(overrides?: CallOverrides): Promise; repayLoss(tranche: string, lossId: BigNumberish, amount: BigNumberish, overrides?: CallOverrides): Promise; repayOwedFunds(amount: BigNumberish, overrides?: CallOverrides): Promise; reportLoss(lossAmount: BigNumberish, doMintLossTokens: boolean, overrides?: CallOverrides): Promise; stop(overrides?: CallOverrides): Promise; totalSupply(overrides?: CallOverrides): Promise; trancheConfigurationDepositLimits(tranche: string, overrides?: CallOverrides): Promise<[ BigNumber, BigNumber ] & { minDepositAmount: BigNumber; maxDepositAmount: BigNumber; }>; trancheIndex(tranche: string, overrides?: CallOverrides): Promise; transfer(to: string, value: BigNumberish, overrides?: CallOverrides): Promise; transferFrom(from: string, to: string, value: BigNumberish, overrides?: CallOverrides): Promise; updateDesiredDrawAmount(desiredDrawAmount: BigNumberish, overrides?: CallOverrides): Promise; updateDrawRecipient(drawRecipient: string, overrides?: CallOverrides): Promise; updateMaximumDepositAmount(tranche: string, maximumDepositAmount: BigNumberish, overrides?: CallOverrides): Promise; updateMinimumDepositAmount(tranche: string, minimumDepositAmount: BigNumberish, overrides?: CallOverrides): Promise; updateMinimumExcessLiquidityPercentage(minimumExcessLiquidityPercentage: BigNumberish, overrides?: CallOverrides): Promise; updateTargetExcessLiquidityPercentage(targetExcessLiquidityPercentage: BigNumberish, overrides?: CallOverrides): Promise; updateTrancheDesiredRatios(ratios: BigNumberish[], overrides?: CallOverrides): Promise; updateTrancheInterestRate(tranche: string, interestRate: BigNumberish, overrides?: CallOverrides): Promise; updateTrancheInterestRateChangeEpochDelay(epochDelay: BigNumberish, overrides?: CallOverrides): Promise; userBalance(user: string, overrides?: CallOverrides): Promise; userOwedAmount(overrides?: CallOverrides): Promise; verifyClearingConfig(clearingConfig: ClearingConfigurationStruct, overrides?: CallOverrides): Promise; withdrawFirstLossCapital(withdrawAmount: BigNumberish, withdrawAddress: string, overrides?: CallOverrides): Promise; }; filters: { "Approval(address,address,uint256)"(owner?: string | null, spender?: string | null, value?: null): ApprovalEventFilter; Approval(owner?: string | null, spender?: string | null, value?: null): ApprovalEventFilter; "DepositAccepted(address,address,uint256)"(user?: string | null, tranche?: string | null, amount?: null): DepositAcceptedEventFilter; DepositAccepted(user?: string | null, tranche?: string | null, amount?: null): DepositAcceptedEventFilter; "FeesOwedIncreased(uint256,uint256)"(epoch?: BigNumberish | null, feesIncreasedAmount?: null): FeesOwedIncreasedEventFilter; FeesOwedIncreased(epoch?: BigNumberish | null, feesIncreasedAmount?: null): FeesOwedIncreasedEventFilter; "FirstLossCapitalAdded(uint256)"(amountAdded?: null): FirstLossCapitalAddedEventFilter; FirstLossCapitalAdded(amountAdded?: null): FirstLossCapitalAddedEventFilter; "FirstLossCapitalLossReported(uint256,uint256)"(lossId?: BigNumberish | null, amount?: null): FirstLossCapitalLossReportedEventFilter; FirstLossCapitalLossReported(lossId?: BigNumberish | null, amount?: null): FirstLossCapitalLossReportedEventFilter; "FirstLossCapitalWithdrawn(uint256)"(amountWithdrawn?: null): FirstLossCapitalWithdrawnEventFilter; FirstLossCapitalWithdrawn(amountWithdrawn?: null): FirstLossCapitalWithdrawnEventFilter; "FundsDrawn(uint256)"(amount?: null): FundsDrawnEventFilter; FundsDrawn(amount?: null): FundsDrawnEventFilter; "ImmediateWithdrawal(address,address,uint256,uint256)"(user?: string | null, tranche?: string | null, shares?: null, amount?: null): ImmediateWithdrawalEventFilter; ImmediateWithdrawal(user?: string | null, tranche?: string | null, shares?: null, amount?: null): ImmediateWithdrawalEventFilter; "InterestApplied(address,uint256,uint256)"(tranche?: string | null, epoch?: BigNumberish | null, interestAmount?: null): InterestAppliedEventFilter; InterestApplied(tranche?: string | null, epoch?: BigNumberish | null, interestAmount?: null): InterestAppliedEventFilter; "LendingPoolStopped()"(): LendingPoolStoppedEventFilter; LendingPoolStopped(): LendingPoolStoppedEventFilter; "LossReported(uint256)"(amount?: null): LossReportedEventFilter; LossReported(amount?: null): LossReportedEventFilter; "OwedFundsRepaid(uint256,uint256)"(amountForUsers?: null, amountForFees?: null): OwedFundsRepaidEventFilter; OwedFundsRepaid(amountForUsers?: null, amountForFees?: null): OwedFundsRepaidEventFilter; "PaidFees(uint256)"(feesPaid?: null): PaidFeesEventFilter; PaidFees(feesPaid?: null): PaidFeesEventFilter; "RemovedTrancheInterestRateUpdate(address,uint256,uint256)"(tranche?: string | null, applicableEpoch?: BigNumberish | null, arrayIndex?: null): RemovedTrancheInterestRateUpdateEventFilter; RemovedTrancheInterestRateUpdate(tranche?: string | null, applicableEpoch?: BigNumberish | null, arrayIndex?: null): RemovedTrancheInterestRateUpdateEventFilter; "Transfer(address,address,uint256)"(from?: string | null, to?: string | null, value?: null): TransferEventFilter; Transfer(from?: string | null, to?: string | null, value?: null): TransferEventFilter; "UpdatedDesiredDrawAmount(uint256)"(desiredDrawAmount?: null): UpdatedDesiredDrawAmountEventFilter; UpdatedDesiredDrawAmount(desiredDrawAmount?: null): UpdatedDesiredDrawAmountEventFilter; "UpdatedDrawRecipient(address)"(drawRecipient?: string | null): UpdatedDrawRecipientEventFilter; UpdatedDrawRecipient(drawRecipient?: string | null): UpdatedDrawRecipientEventFilter; "UpdatedMaximumDepositAmount(address,uint256)"(tranche?: string | null, amount?: null): UpdatedMaximumDepositAmountEventFilter; UpdatedMaximumDepositAmount(tranche?: string | null, amount?: null): UpdatedMaximumDepositAmountEventFilter; "UpdatedMinimumDepositAmount(address,uint256)"(tranche?: string | null, amount?: null): UpdatedMinimumDepositAmountEventFilter; UpdatedMinimumDepositAmount(tranche?: string | null, amount?: null): UpdatedMinimumDepositAmountEventFilter; "UpdatedMinimumExcessLiquidityPercentage(uint256)"(percentage?: null): UpdatedMinimumExcessLiquidityPercentageEventFilter; UpdatedMinimumExcessLiquidityPercentage(percentage?: null): UpdatedMinimumExcessLiquidityPercentageEventFilter; "UpdatedTargetExcessLiquidityPercentage(uint256)"(percentage?: null): UpdatedTargetExcessLiquidityPercentageEventFilter; UpdatedTargetExcessLiquidityPercentage(percentage?: null): UpdatedTargetExcessLiquidityPercentageEventFilter; "UpdatedTrancheDesiredRatios(uint256[])"(ratios?: null): UpdatedTrancheDesiredRatiosEventFilter; UpdatedTrancheDesiredRatios(ratios?: null): UpdatedTrancheDesiredRatiosEventFilter; "UpdatedTrancheInterestRate(address,uint256,uint256)"(tranche?: string | null, applicableEpoch?: BigNumberish | null, newInterestRate?: null): UpdatedTrancheInterestRateEventFilter; UpdatedTrancheInterestRate(tranche?: string | null, applicableEpoch?: BigNumberish | null, newInterestRate?: null): UpdatedTrancheInterestRateEventFilter; "UpdatedTrancheInterestRateChangeEpochDelay(uint256)"(epochDelay?: null): UpdatedTrancheInterestRateChangeEpochDelayEventFilter; UpdatedTrancheInterestRateChangeEpochDelay(epochDelay?: null): UpdatedTrancheInterestRateChangeEpochDelayEventFilter; "WithdrawalAccepted(address,address,uint256,uint256)"(user?: string | null, tranche?: string | null, shares?: null, assetAmount?: null): WithdrawalAcceptedEventFilter; WithdrawalAccepted(user?: string | null, tranche?: string | null, shares?: null, assetAmount?: null): WithdrawalAcceptedEventFilter; }; estimateGas: { acceptDeposit(tranche: string, user: string, acceptedAmount: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; acceptWithdrawal(tranche: string, user: string, acceptedShares: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; allowance(owner: string, spender: string, overrides?: CallOverrides): Promise; applyInterests(epoch: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; approve(spender: string, value: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; availableFunds(overrides?: CallOverrides): Promise; balanceOf(account: string, overrides?: CallOverrides): Promise; calculateMaximumLossAmount(overrides?: CallOverrides): Promise; claimRepaidLoss(user: string, tranche: string, lossId: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; depositFirstLossCapital(amount: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; drawFunds(amount: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; feesOwedAmount(overrides?: CallOverrides): Promise; forceImmediateWithdrawal(tranche: string, user: string, sharesToWithdraw: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; getClearingConfig(overrides?: CallOverrides): Promise; getLendingPoolInfo(overrides?: CallOverrides): Promise; isLendingPoolTranche(tranche: string, overrides?: CallOverrides): Promise; lendingPoolTrancheCount(overrides?: CallOverrides): Promise; lendingPoolTranches(overrides?: CallOverrides): Promise; pendingPool(overrides?: CallOverrides): Promise; poolConfiguration(overrides?: CallOverrides): Promise; repayLoss(tranche: string, lossId: BigNumberish, amount: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; repayOwedFunds(amount: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; reportLoss(lossAmount: BigNumberish, doMintLossTokens: boolean, overrides?: Overrides & { from?: string; }): Promise; stop(overrides?: Overrides & { from?: string; }): Promise; totalSupply(overrides?: CallOverrides): Promise; trancheConfigurationDepositLimits(tranche: string, overrides?: CallOverrides): Promise; trancheIndex(tranche: string, overrides?: CallOverrides): Promise; transfer(to: string, value: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; transferFrom(from: string, to: string, value: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; updateDesiredDrawAmount(desiredDrawAmount: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; updateDrawRecipient(drawRecipient: string, overrides?: Overrides & { from?: string; }): Promise; updateMaximumDepositAmount(tranche: string, maximumDepositAmount: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; updateMinimumDepositAmount(tranche: string, minimumDepositAmount: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; updateMinimumExcessLiquidityPercentage(minimumExcessLiquidityPercentage: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; updateTargetExcessLiquidityPercentage(targetExcessLiquidityPercentage: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; updateTrancheDesiredRatios(ratios: BigNumberish[], overrides?: Overrides & { from?: string; }): Promise; updateTrancheInterestRate(tranche: string, interestRate: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; updateTrancheInterestRateChangeEpochDelay(epochDelay: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; userBalance(user: string, overrides?: CallOverrides): Promise; userOwedAmount(overrides?: CallOverrides): Promise; verifyClearingConfig(clearingConfig: ClearingConfigurationStruct, overrides?: CallOverrides): Promise; withdrawFirstLossCapital(withdrawAmount: BigNumberish, withdrawAddress: string, overrides?: Overrides & { from?: string; }): Promise; }; populateTransaction: { acceptDeposit(tranche: string, user: string, acceptedAmount: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; acceptWithdrawal(tranche: string, user: string, acceptedShares: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; allowance(owner: string, spender: string, overrides?: CallOverrides): Promise; applyInterests(epoch: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; approve(spender: string, value: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; availableFunds(overrides?: CallOverrides): Promise; balanceOf(account: string, overrides?: CallOverrides): Promise; calculateMaximumLossAmount(overrides?: CallOverrides): Promise; claimRepaidLoss(user: string, tranche: string, lossId: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; depositFirstLossCapital(amount: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; drawFunds(amount: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; feesOwedAmount(overrides?: CallOverrides): Promise; forceImmediateWithdrawal(tranche: string, user: string, sharesToWithdraw: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; getClearingConfig(overrides?: CallOverrides): Promise; getLendingPoolInfo(overrides?: CallOverrides): Promise; isLendingPoolTranche(tranche: string, overrides?: CallOverrides): Promise; lendingPoolTrancheCount(overrides?: CallOverrides): Promise; lendingPoolTranches(overrides?: CallOverrides): Promise; pendingPool(overrides?: CallOverrides): Promise; poolConfiguration(overrides?: CallOverrides): Promise; repayLoss(tranche: string, lossId: BigNumberish, amount: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; repayOwedFunds(amount: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; reportLoss(lossAmount: BigNumberish, doMintLossTokens: boolean, overrides?: Overrides & { from?: string; }): Promise; stop(overrides?: Overrides & { from?: string; }): Promise; totalSupply(overrides?: CallOverrides): Promise; trancheConfigurationDepositLimits(tranche: string, overrides?: CallOverrides): Promise; trancheIndex(tranche: string, overrides?: CallOverrides): Promise; transfer(to: string, value: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; transferFrom(from: string, to: string, value: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; updateDesiredDrawAmount(desiredDrawAmount: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; updateDrawRecipient(drawRecipient: string, overrides?: Overrides & { from?: string; }): Promise; updateMaximumDepositAmount(tranche: string, maximumDepositAmount: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; updateMinimumDepositAmount(tranche: string, minimumDepositAmount: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; updateMinimumExcessLiquidityPercentage(minimumExcessLiquidityPercentage: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; updateTargetExcessLiquidityPercentage(targetExcessLiquidityPercentage: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; updateTrancheDesiredRatios(ratios: BigNumberish[], overrides?: Overrides & { from?: string; }): Promise; updateTrancheInterestRate(tranche: string, interestRate: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; updateTrancheInterestRateChangeEpochDelay(epochDelay: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; userBalance(user: string, overrides?: CallOverrides): Promise; userOwedAmount(overrides?: CallOverrides): Promise; verifyClearingConfig(clearingConfig: ClearingConfigurationStruct, overrides?: CallOverrides): Promise; withdrawFirstLossCapital(withdrawAmount: BigNumberish, withdrawAddress: string, overrides?: Overrides & { from?: string; }): Promise; }; }