import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from "ethers"; import type { FunctionFragment, Result } from "@ethersproject/abi"; import type { Listener, Provider } from "@ethersproject/providers"; import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export type CreateTrancheConfigStruct = { ratio: BigNumberish; interestRate: BigNumberish; minDepositAmount: BigNumberish; maxDepositAmount: BigNumberish; }; export type CreateTrancheConfigStructOutput = [ BigNumber, BigNumber, BigNumber, BigNumber ] & { ratio: BigNumber; interestRate: BigNumber; minDepositAmount: BigNumber; maxDepositAmount: BigNumber; }; export type CreatePoolConfigStruct = { poolName: string; poolSymbol: string; targetExcessLiquidityPercentage: BigNumberish; tranches: CreateTrancheConfigStruct[]; poolAdmin: string; drawRecipient: string; desiredDrawAmount: BigNumberish; }; export type CreatePoolConfigStructOutput = [ string, string, BigNumber, CreateTrancheConfigStructOutput[], string, string, BigNumber ] & { poolName: string; poolSymbol: string; targetExcessLiquidityPercentage: BigNumber; tranches: CreateTrancheConfigStructOutput[]; poolAdmin: string; drawRecipient: string; desiredDrawAmount: BigNumber; }; export type LendingPoolDeploymentStruct = { lendingPool: string; pendingPool: string; tranches: string[]; }; export type LendingPoolDeploymentStructOutput = [string, string, string[]] & { lendingPool: string; pendingPool: string; tranches: string[]; }; export interface ILendingPoolFactoryAbiInterface extends utils.Interface { functions: { "createPool((string,string,uint256,(uint256,uint256,uint256,uint256)[],address,address,uint256))": FunctionFragment; }; getFunction(nameOrSignatureOrTopic: "createPool"): FunctionFragment; encodeFunctionData(functionFragment: "createPool", values: [CreatePoolConfigStruct]): string; decodeFunctionResult(functionFragment: "createPool", data: BytesLike): Result; events: {}; } export interface ILendingPoolFactoryAbi extends BaseContract { connect(signerOrProvider: Signer | Provider | string): this; attach(addressOrName: string): this; deployed(): Promise; interface: ILendingPoolFactoryAbiInterface; 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: { createPool(createPoolConfig: CreatePoolConfigStruct, overrides?: Overrides & { from?: string; }): Promise; }; createPool(createPoolConfig: CreatePoolConfigStruct, overrides?: Overrides & { from?: string; }): Promise; callStatic: { createPool(createPoolConfig: CreatePoolConfigStruct, overrides?: CallOverrides): Promise; }; filters: {}; estimateGas: { createPool(createPoolConfig: CreatePoolConfigStruct, overrides?: Overrides & { from?: string; }): Promise; }; populateTransaction: { createPool(createPoolConfig: CreatePoolConfigStruct, overrides?: Overrides & { from?: string; }): Promise; }; }