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, PromiseOrValue } from './common';
export declare namespace Types {
    type AssetLiquidityDataStruct = {
        collateralValue: PromiseOrValue<BigNumberish>;
        maxDebtValue: PromiseOrValue<BigNumberish>;
        debtValue: PromiseOrValue<BigNumberish>;
        underlyingPrice: PromiseOrValue<BigNumberish>;
        collateralFactor: PromiseOrValue<BigNumberish>;
    };
    type AssetLiquidityDataStructOutput = [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber] & {
        collateralValue: BigNumber;
        maxDebtValue: BigNumber;
        debtValue: BigNumber;
        underlyingPrice: BigNumber;
        collateralFactor: BigNumber;
    };
}
export interface MorphoCompoundLensInterface extends utils.Interface {
    functions: {
        'MAX_BASIS_POINTS()': FunctionFragment;
        'WAD()': FunctionFragment;
        'comptroller()': FunctionFragment;
        'computeLiquidationRepayAmount(address,address,address,address[])': FunctionFragment;
        'getAccruedBorrowerComp(address,address,uint256)': FunctionFragment;
        'getAccruedSupplierComp(address,address,uint256)': FunctionFragment;
        'getAdvancedMarketData(address)': FunctionFragment;
        'getAllMarkets()': FunctionFragment;
        'getAverageBorrowRatePerBlock(address)': FunctionFragment;
        'getAverageSupplyRatePerBlock(address)': FunctionFragment;
        'getCurrentBorrowBalanceInOf(address,address)': FunctionFragment;
        'getCurrentCompBorrowIndex(address)': FunctionFragment;
        'getCurrentCompSupplyIndex(address)': FunctionFragment;
        'getCurrentP2PBorrowIndex(address)': FunctionFragment;
        'getCurrentP2PSupplyIndex(address)': FunctionFragment;
        'getCurrentPoolIndexes(address)': FunctionFragment;
        'getCurrentSupplyBalanceInOf(address,address)': FunctionFragment;
        'getCurrentUserBorrowRatePerBlock(address,address)': FunctionFragment;
        'getCurrentUserSupplyRatePerBlock(address,address)': FunctionFragment;
        'getEnteredMarkets(address)': FunctionFragment;
        'getIndexes(address,bool)': FunctionFragment;
        'getMainMarketData(address)': FunctionFragment;
        'getMarketConfiguration(address)': FunctionFragment;
        'getNextUserBorrowRatePerBlock(address,address,uint256)': FunctionFragment;
        'getNextUserSupplyRatePerBlock(address,address,uint256)': FunctionFragment;
        'getRatesPerBlock(address)': FunctionFragment;
        'getTotalBorrow()': FunctionFragment;
        'getTotalMarketBorrow(address)': FunctionFragment;
        'getTotalMarketSupply(address)': FunctionFragment;
        'getTotalSupply()': FunctionFragment;
        'getUserBalanceStates(address,address[])': FunctionFragment;
        'getUserHealthFactor(address,address[])': FunctionFragment;
        'getUserHypotheticalBalanceStates(address,address,uint256,uint256)': FunctionFragment;
        'getUserLiquidityDataForAsset(address,address,bool,address)': FunctionFragment;
        'getUserMaxCapacitiesForAsset(address,address)': FunctionFragment;
        'getUserUnclaimedRewards(address[],address)': FunctionFragment;
        'initialize(address)': FunctionFragment;
        'isLiquidatable(address,address[])': FunctionFragment;
        'isMarketCreated(address)': FunctionFragment;
        'isMarketCreatedAndNotPaused(address)': FunctionFragment;
        'isMarketCreatedAndNotPausedNorPartiallyPaused(address)': FunctionFragment;
        'morpho()': FunctionFragment;
        'rewardsManager()': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'MAX_BASIS_POINTS' | 'WAD' | 'comptroller' | 'computeLiquidationRepayAmount' | 'getAccruedBorrowerComp' | 'getAccruedSupplierComp' | 'getAdvancedMarketData' | 'getAllMarkets' | 'getAverageBorrowRatePerBlock' | 'getAverageSupplyRatePerBlock' | 'getCurrentBorrowBalanceInOf' | 'getCurrentCompBorrowIndex' | 'getCurrentCompSupplyIndex' | 'getCurrentP2PBorrowIndex' | 'getCurrentP2PSupplyIndex' | 'getCurrentPoolIndexes' | 'getCurrentSupplyBalanceInOf' | 'getCurrentUserBorrowRatePerBlock' | 'getCurrentUserSupplyRatePerBlock' | 'getEnteredMarkets' | 'getIndexes' | 'getMainMarketData' | 'getMarketConfiguration' | 'getNextUserBorrowRatePerBlock' | 'getNextUserSupplyRatePerBlock' | 'getRatesPerBlock' | 'getTotalBorrow' | 'getTotalMarketBorrow' | 'getTotalMarketSupply' | 'getTotalSupply' | 'getUserBalanceStates' | 'getUserHealthFactor' | 'getUserHypotheticalBalanceStates' | 'getUserLiquidityDataForAsset' | 'getUserMaxCapacitiesForAsset' | 'getUserUnclaimedRewards' | 'initialize' | 'isLiquidatable' | 'isMarketCreated' | 'isMarketCreatedAndNotPaused' | 'isMarketCreatedAndNotPausedNorPartiallyPaused' | 'morpho' | 'rewardsManager'): FunctionFragment;
    encodeFunctionData(functionFragment: 'MAX_BASIS_POINTS', values?: undefined): string;
    encodeFunctionData(functionFragment: 'WAD', values?: undefined): string;
    encodeFunctionData(functionFragment: 'comptroller', values?: undefined): string;
    encodeFunctionData(functionFragment: 'computeLiquidationRepayAmount', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<string>[]]): string;
    encodeFunctionData(functionFragment: 'getAccruedBorrowerComp', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getAccruedSupplierComp', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getAdvancedMarketData', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getAllMarkets', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getAverageBorrowRatePerBlock', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getAverageSupplyRatePerBlock', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getCurrentBorrowBalanceInOf', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getCurrentCompBorrowIndex', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getCurrentCompSupplyIndex', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getCurrentP2PBorrowIndex', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getCurrentP2PSupplyIndex', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getCurrentPoolIndexes', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getCurrentSupplyBalanceInOf', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getCurrentUserBorrowRatePerBlock', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getCurrentUserSupplyRatePerBlock', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getEnteredMarkets', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getIndexes', values: [PromiseOrValue<string>, PromiseOrValue<boolean>]): string;
    encodeFunctionData(functionFragment: 'getMainMarketData', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getMarketConfiguration', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getNextUserBorrowRatePerBlock', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getNextUserSupplyRatePerBlock', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getRatesPerBlock', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getTotalBorrow', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getTotalMarketBorrow', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getTotalMarketSupply', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getTotalSupply', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getUserBalanceStates', values: [PromiseOrValue<string>, PromiseOrValue<string>[]]): string;
    encodeFunctionData(functionFragment: 'getUserHealthFactor', values: [PromiseOrValue<string>, PromiseOrValue<string>[]]): string;
    encodeFunctionData(functionFragment: 'getUserHypotheticalBalanceStates', values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'getUserLiquidityDataForAsset', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<boolean>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getUserMaxCapacitiesForAsset', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getUserUnclaimedRewards', values: [PromiseOrValue<string>[], PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'initialize', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'isLiquidatable', values: [PromiseOrValue<string>, PromiseOrValue<string>[]]): string;
    encodeFunctionData(functionFragment: 'isMarketCreated', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'isMarketCreatedAndNotPaused', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'isMarketCreatedAndNotPausedNorPartiallyPaused', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'morpho', values?: undefined): string;
    encodeFunctionData(functionFragment: 'rewardsManager', values?: undefined): string;
    decodeFunctionResult(functionFragment: 'MAX_BASIS_POINTS', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'WAD', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'comptroller', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'computeLiquidationRepayAmount', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getAccruedBorrowerComp', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getAccruedSupplierComp', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getAdvancedMarketData', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getAllMarkets', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getAverageBorrowRatePerBlock', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getAverageSupplyRatePerBlock', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getCurrentBorrowBalanceInOf', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getCurrentCompBorrowIndex', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getCurrentCompSupplyIndex', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getCurrentP2PBorrowIndex', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getCurrentP2PSupplyIndex', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getCurrentPoolIndexes', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getCurrentSupplyBalanceInOf', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getCurrentUserBorrowRatePerBlock', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getCurrentUserSupplyRatePerBlock', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getEnteredMarkets', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getIndexes', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getMainMarketData', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getMarketConfiguration', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getNextUserBorrowRatePerBlock', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getNextUserSupplyRatePerBlock', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getRatesPerBlock', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getTotalBorrow', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getTotalMarketBorrow', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getTotalMarketSupply', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getTotalSupply', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getUserBalanceStates', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getUserHealthFactor', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getUserHypotheticalBalanceStates', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getUserLiquidityDataForAsset', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getUserMaxCapacitiesForAsset', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getUserUnclaimedRewards', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'initialize', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isLiquidatable', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isMarketCreated', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isMarketCreatedAndNotPaused', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isMarketCreatedAndNotPausedNorPartiallyPaused', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'morpho', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'rewardsManager', data: BytesLike): Result;
    events: {};
}
export interface MorphoCompoundLens extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: MorphoCompoundLensInterface;
    queryFilter<TEvent extends TypedEvent>(event: TypedEventFilter<TEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TEvent>>;
    listeners<TEvent extends TypedEvent>(eventFilter?: TypedEventFilter<TEvent>): Array<TypedListener<TEvent>>;
    listeners(eventName?: string): Array<Listener>;
    removeAllListeners<TEvent extends TypedEvent>(eventFilter: TypedEventFilter<TEvent>): this;
    removeAllListeners(eventName?: string): this;
    off: OnEvent<this>;
    on: OnEvent<this>;
    once: OnEvent<this>;
    removeListener: OnEvent<this>;
    functions: {
        MAX_BASIS_POINTS(overrides?: CallOverrides): Promise<[BigNumber]>;
        WAD(overrides?: CallOverrides): Promise<[BigNumber]>;
        comptroller(overrides?: CallOverrides): Promise<[string]>;
        computeLiquidationRepayAmount(_user: PromiseOrValue<string>, _poolTokenBorrowedAddress: PromiseOrValue<string>, _poolTokenCollateralAddress: PromiseOrValue<string>, _updatedMarkets: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<[BigNumber] & {
            toRepay: BigNumber;
        }>;
        getAccruedBorrowerComp(_borrower: PromiseOrValue<string>, _poolTokenAddress: PromiseOrValue<string>, _balance: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getAccruedSupplierComp(_supplier: PromiseOrValue<string>, _poolTokenAddress: PromiseOrValue<string>, _balance: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getAdvancedMarketData(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            number,
            BigNumber,
            BigNumber
        ] & {
            p2pSupplyIndex: BigNumber;
            p2pBorrowIndex: BigNumber;
            poolSupplyIndex: BigNumber;
            poolBorrowIndex: BigNumber;
            lastUpdateBlockNumber: number;
            p2pSupplyDelta: BigNumber;
            p2pBorrowDelta: BigNumber;
        }>;
        getAllMarkets(overrides?: CallOverrides): Promise<[string[]] & {
            marketsCreated: string[];
        }>;
        getAverageBorrowRatePerBlock(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            avgBorrowRatePerBlock: BigNumber;
            p2pBorrowAmount: BigNumber;
            poolBorrowAmount: BigNumber;
        }>;
        getAverageSupplyRatePerBlock(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            avgSupplyRatePerBlock: BigNumber;
            p2pSupplyAmount: BigNumber;
            poolSupplyAmount: BigNumber;
        }>;
        getCurrentBorrowBalanceInOf(_poolTokenAddress: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            balanceOnPool: BigNumber;
            balanceInP2P: BigNumber;
            totalBalance: BigNumber;
        }>;
        getCurrentCompBorrowIndex(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getCurrentCompSupplyIndex(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getCurrentP2PBorrowIndex(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber] & {
            currentP2PBorrowIndex: BigNumber;
        }>;
        getCurrentP2PSupplyIndex(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber] & {
            currentP2PSupplyIndex: BigNumber;
        }>;
        getCurrentPoolIndexes(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber
        ] & {
            currentPoolSupplyIndex: BigNumber;
            currentPoolBorrowIndex: BigNumber;
        }>;
        getCurrentSupplyBalanceInOf(_poolTokenAddress: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            balanceOnPool: BigNumber;
            balanceInP2P: BigNumber;
            totalBalance: BigNumber;
        }>;
        getCurrentUserBorrowRatePerBlock(_poolTokenAddress: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getCurrentUserSupplyRatePerBlock(_poolTokenAddress: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getEnteredMarkets(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[string[]] & {
            enteredMarkets: string[];
        }>;
        getIndexes(_poolTokenAddress: PromiseOrValue<string>, _getUpdatedIndexes: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            newP2PSupplyIndex: BigNumber;
            newP2PBorrowIndex: BigNumber;
            newPoolSupplyIndex: BigNumber;
            newPoolBorrowIndex: BigNumber;
        }>;
        getMainMarketData(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            avgSupplyRatePerBlock: BigNumber;
            avgBorrowRatePerBlock: BigNumber;
            p2pSupplyAmount: BigNumber;
            p2pBorrowAmount: BigNumber;
            poolSupplyAmount: BigNumber;
            poolBorrowAmount: BigNumber;
        }>;
        getMarketConfiguration(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            string,
            boolean,
            boolean,
            boolean,
            boolean,
            number,
            number,
            BigNumber
        ] & {
            underlying: string;
            isCreated: boolean;
            p2pDisabled: boolean;
            isPaused: boolean;
            isPartiallyPaused: boolean;
            reserveFactor: number;
            p2pIndexCursor: number;
            collateralFactor: BigNumber;
        }>;
        getNextUserBorrowRatePerBlock(_poolTokenAddress: PromiseOrValue<string>, _user: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            nextBorrowRatePerBlock: BigNumber;
            balanceOnPool: BigNumber;
            balanceInP2P: BigNumber;
            totalBalance: BigNumber;
        }>;
        getNextUserSupplyRatePerBlock(_poolTokenAddress: PromiseOrValue<string>, _user: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            nextSupplyRatePerBlock: BigNumber;
            balanceOnPool: BigNumber;
            balanceInP2P: BigNumber;
            totalBalance: BigNumber;
        }>;
        getRatesPerBlock(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            p2pSupplyRate: BigNumber;
            p2pBorrowRate: BigNumber;
            poolSupplyRate: BigNumber;
            poolBorrowRate: BigNumber;
        }>;
        getTotalBorrow(overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            p2pBorrowAmount: BigNumber;
            poolBorrowAmount: BigNumber;
            totalBorrowAmount: BigNumber;
        }>;
        getTotalMarketBorrow(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber
        ] & {
            p2pBorrowAmount: BigNumber;
            poolBorrowAmount: BigNumber;
        }>;
        getTotalMarketSupply(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber
        ] & {
            p2pSupplyAmount: BigNumber;
            poolSupplyAmount: BigNumber;
        }>;
        getTotalSupply(overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            p2pSupplyAmount: BigNumber;
            poolSupplyAmount: BigNumber;
            totalSupplyAmount: BigNumber;
        }>;
        getUserBalanceStates(_user: PromiseOrValue<string>, _updatedMarkets: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            collateralValue: BigNumber;
            debtValue: BigNumber;
            maxDebtValue: BigNumber;
        }>;
        getUserHealthFactor(_user: PromiseOrValue<string>, _updatedMarkets: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<[BigNumber]>;
        getUserHypotheticalBalanceStates(_user: PromiseOrValue<string>, _poolTokenAddress: PromiseOrValue<string>, _withdrawnAmount: PromiseOrValue<BigNumberish>, _borrowedAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            debtValue: BigNumber;
            maxDebtValue: BigNumber;
        }>;
        getUserLiquidityDataForAsset(_user: PromiseOrValue<string>, _poolTokenAddress: PromiseOrValue<string>, _getUpdatedIndexes: PromiseOrValue<boolean>, _oracle: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            Types.AssetLiquidityDataStructOutput
        ] & {
            assetData: Types.AssetLiquidityDataStructOutput;
        }>;
        getUserMaxCapacitiesForAsset(_user: PromiseOrValue<string>, _poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber
        ] & {
            withdrawable: BigNumber;
            borrowable: BigNumber;
        }>;
        getUserUnclaimedRewards(_poolTokenAddresses: PromiseOrValue<string>[], _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber] & {
            unclaimedRewards: BigNumber;
        }>;
        initialize(_morphoAddress: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        isLiquidatable(_user: PromiseOrValue<string>, _updatedMarkets: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<[boolean]>;
        isMarketCreated(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        isMarketCreatedAndNotPaused(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        isMarketCreatedAndNotPausedNorPartiallyPaused(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        morpho(overrides?: CallOverrides): Promise<[string]>;
        rewardsManager(overrides?: CallOverrides): Promise<[string]>;
    };
    MAX_BASIS_POINTS(overrides?: CallOverrides): Promise<BigNumber>;
    WAD(overrides?: CallOverrides): Promise<BigNumber>;
    comptroller(overrides?: CallOverrides): Promise<string>;
    computeLiquidationRepayAmount(_user: PromiseOrValue<string>, _poolTokenBorrowedAddress: PromiseOrValue<string>, _poolTokenCollateralAddress: PromiseOrValue<string>, _updatedMarkets: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<BigNumber>;
    getAccruedBorrowerComp(_borrower: PromiseOrValue<string>, _poolTokenAddress: PromiseOrValue<string>, _balance: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    getAccruedSupplierComp(_supplier: PromiseOrValue<string>, _poolTokenAddress: PromiseOrValue<string>, _balance: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    getAdvancedMarketData(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        number,
        BigNumber,
        BigNumber
    ] & {
        p2pSupplyIndex: BigNumber;
        p2pBorrowIndex: BigNumber;
        poolSupplyIndex: BigNumber;
        poolBorrowIndex: BigNumber;
        lastUpdateBlockNumber: number;
        p2pSupplyDelta: BigNumber;
        p2pBorrowDelta: BigNumber;
    }>;
    getAllMarkets(overrides?: CallOverrides): Promise<string[]>;
    getAverageBorrowRatePerBlock(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        avgBorrowRatePerBlock: BigNumber;
        p2pBorrowAmount: BigNumber;
        poolBorrowAmount: BigNumber;
    }>;
    getAverageSupplyRatePerBlock(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        avgSupplyRatePerBlock: BigNumber;
        p2pSupplyAmount: BigNumber;
        poolSupplyAmount: BigNumber;
    }>;
    getCurrentBorrowBalanceInOf(_poolTokenAddress: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        balanceOnPool: BigNumber;
        balanceInP2P: BigNumber;
        totalBalance: BigNumber;
    }>;
    getCurrentCompBorrowIndex(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    getCurrentCompSupplyIndex(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    getCurrentP2PBorrowIndex(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    getCurrentP2PSupplyIndex(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    getCurrentPoolIndexes(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber
    ] & {
        currentPoolSupplyIndex: BigNumber;
        currentPoolBorrowIndex: BigNumber;
    }>;
    getCurrentSupplyBalanceInOf(_poolTokenAddress: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        balanceOnPool: BigNumber;
        balanceInP2P: BigNumber;
        totalBalance: BigNumber;
    }>;
    getCurrentUserBorrowRatePerBlock(_poolTokenAddress: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    getCurrentUserSupplyRatePerBlock(_poolTokenAddress: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    getEnteredMarkets(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string[]>;
    getIndexes(_poolTokenAddress: PromiseOrValue<string>, _getUpdatedIndexes: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        newP2PSupplyIndex: BigNumber;
        newP2PBorrowIndex: BigNumber;
        newPoolSupplyIndex: BigNumber;
        newPoolBorrowIndex: BigNumber;
    }>;
    getMainMarketData(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        avgSupplyRatePerBlock: BigNumber;
        avgBorrowRatePerBlock: BigNumber;
        p2pSupplyAmount: BigNumber;
        p2pBorrowAmount: BigNumber;
        poolSupplyAmount: BigNumber;
        poolBorrowAmount: BigNumber;
    }>;
    getMarketConfiguration(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
        string,
        boolean,
        boolean,
        boolean,
        boolean,
        number,
        number,
        BigNumber
    ] & {
        underlying: string;
        isCreated: boolean;
        p2pDisabled: boolean;
        isPaused: boolean;
        isPartiallyPaused: boolean;
        reserveFactor: number;
        p2pIndexCursor: number;
        collateralFactor: BigNumber;
    }>;
    getNextUserBorrowRatePerBlock(_poolTokenAddress: PromiseOrValue<string>, _user: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        nextBorrowRatePerBlock: BigNumber;
        balanceOnPool: BigNumber;
        balanceInP2P: BigNumber;
        totalBalance: BigNumber;
    }>;
    getNextUserSupplyRatePerBlock(_poolTokenAddress: PromiseOrValue<string>, _user: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        nextSupplyRatePerBlock: BigNumber;
        balanceOnPool: BigNumber;
        balanceInP2P: BigNumber;
        totalBalance: BigNumber;
    }>;
    getRatesPerBlock(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        p2pSupplyRate: BigNumber;
        p2pBorrowRate: BigNumber;
        poolSupplyRate: BigNumber;
        poolBorrowRate: BigNumber;
    }>;
    getTotalBorrow(overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        p2pBorrowAmount: BigNumber;
        poolBorrowAmount: BigNumber;
        totalBorrowAmount: BigNumber;
    }>;
    getTotalMarketBorrow(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber
    ] & {
        p2pBorrowAmount: BigNumber;
        poolBorrowAmount: BigNumber;
    }>;
    getTotalMarketSupply(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber
    ] & {
        p2pSupplyAmount: BigNumber;
        poolSupplyAmount: BigNumber;
    }>;
    getTotalSupply(overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        p2pSupplyAmount: BigNumber;
        poolSupplyAmount: BigNumber;
        totalSupplyAmount: BigNumber;
    }>;
    getUserBalanceStates(_user: PromiseOrValue<string>, _updatedMarkets: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        collateralValue: BigNumber;
        debtValue: BigNumber;
        maxDebtValue: BigNumber;
    }>;
    getUserHealthFactor(_user: PromiseOrValue<string>, _updatedMarkets: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<BigNumber>;
    getUserHypotheticalBalanceStates(_user: PromiseOrValue<string>, _poolTokenAddress: PromiseOrValue<string>, _withdrawnAmount: PromiseOrValue<BigNumberish>, _borrowedAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
        debtValue: BigNumber;
        maxDebtValue: BigNumber;
    }>;
    getUserLiquidityDataForAsset(_user: PromiseOrValue<string>, _poolTokenAddress: PromiseOrValue<string>, _getUpdatedIndexes: PromiseOrValue<boolean>, _oracle: PromiseOrValue<string>, overrides?: CallOverrides): Promise<Types.AssetLiquidityDataStructOutput>;
    getUserMaxCapacitiesForAsset(_user: PromiseOrValue<string>, _poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
        withdrawable: BigNumber;
        borrowable: BigNumber;
    }>;
    getUserUnclaimedRewards(_poolTokenAddresses: PromiseOrValue<string>[], _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    initialize(_morphoAddress: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    isLiquidatable(_user: PromiseOrValue<string>, _updatedMarkets: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<boolean>;
    isMarketCreated(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    isMarketCreatedAndNotPaused(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    isMarketCreatedAndNotPausedNorPartiallyPaused(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    morpho(overrides?: CallOverrides): Promise<string>;
    rewardsManager(overrides?: CallOverrides): Promise<string>;
    callStatic: {
        MAX_BASIS_POINTS(overrides?: CallOverrides): Promise<BigNumber>;
        WAD(overrides?: CallOverrides): Promise<BigNumber>;
        comptroller(overrides?: CallOverrides): Promise<string>;
        computeLiquidationRepayAmount(_user: PromiseOrValue<string>, _poolTokenBorrowedAddress: PromiseOrValue<string>, _poolTokenCollateralAddress: PromiseOrValue<string>, _updatedMarkets: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<BigNumber>;
        getAccruedBorrowerComp(_borrower: PromiseOrValue<string>, _poolTokenAddress: PromiseOrValue<string>, _balance: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getAccruedSupplierComp(_supplier: PromiseOrValue<string>, _poolTokenAddress: PromiseOrValue<string>, _balance: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getAdvancedMarketData(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            number,
            BigNumber,
            BigNumber
        ] & {
            p2pSupplyIndex: BigNumber;
            p2pBorrowIndex: BigNumber;
            poolSupplyIndex: BigNumber;
            poolBorrowIndex: BigNumber;
            lastUpdateBlockNumber: number;
            p2pSupplyDelta: BigNumber;
            p2pBorrowDelta: BigNumber;
        }>;
        getAllMarkets(overrides?: CallOverrides): Promise<string[]>;
        getAverageBorrowRatePerBlock(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            avgBorrowRatePerBlock: BigNumber;
            p2pBorrowAmount: BigNumber;
            poolBorrowAmount: BigNumber;
        }>;
        getAverageSupplyRatePerBlock(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            avgSupplyRatePerBlock: BigNumber;
            p2pSupplyAmount: BigNumber;
            poolSupplyAmount: BigNumber;
        }>;
        getCurrentBorrowBalanceInOf(_poolTokenAddress: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            balanceOnPool: BigNumber;
            balanceInP2P: BigNumber;
            totalBalance: BigNumber;
        }>;
        getCurrentCompBorrowIndex(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getCurrentCompSupplyIndex(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getCurrentP2PBorrowIndex(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getCurrentP2PSupplyIndex(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getCurrentPoolIndexes(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber
        ] & {
            currentPoolSupplyIndex: BigNumber;
            currentPoolBorrowIndex: BigNumber;
        }>;
        getCurrentSupplyBalanceInOf(_poolTokenAddress: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            balanceOnPool: BigNumber;
            balanceInP2P: BigNumber;
            totalBalance: BigNumber;
        }>;
        getCurrentUserBorrowRatePerBlock(_poolTokenAddress: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getCurrentUserSupplyRatePerBlock(_poolTokenAddress: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getEnteredMarkets(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string[]>;
        getIndexes(_poolTokenAddress: PromiseOrValue<string>, _getUpdatedIndexes: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            newP2PSupplyIndex: BigNumber;
            newP2PBorrowIndex: BigNumber;
            newPoolSupplyIndex: BigNumber;
            newPoolBorrowIndex: BigNumber;
        }>;
        getMainMarketData(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            avgSupplyRatePerBlock: BigNumber;
            avgBorrowRatePerBlock: BigNumber;
            p2pSupplyAmount: BigNumber;
            p2pBorrowAmount: BigNumber;
            poolSupplyAmount: BigNumber;
            poolBorrowAmount: BigNumber;
        }>;
        getMarketConfiguration(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            string,
            boolean,
            boolean,
            boolean,
            boolean,
            number,
            number,
            BigNumber
        ] & {
            underlying: string;
            isCreated: boolean;
            p2pDisabled: boolean;
            isPaused: boolean;
            isPartiallyPaused: boolean;
            reserveFactor: number;
            p2pIndexCursor: number;
            collateralFactor: BigNumber;
        }>;
        getNextUserBorrowRatePerBlock(_poolTokenAddress: PromiseOrValue<string>, _user: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            nextBorrowRatePerBlock: BigNumber;
            balanceOnPool: BigNumber;
            balanceInP2P: BigNumber;
            totalBalance: BigNumber;
        }>;
        getNextUserSupplyRatePerBlock(_poolTokenAddress: PromiseOrValue<string>, _user: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            nextSupplyRatePerBlock: BigNumber;
            balanceOnPool: BigNumber;
            balanceInP2P: BigNumber;
            totalBalance: BigNumber;
        }>;
        getRatesPerBlock(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            p2pSupplyRate: BigNumber;
            p2pBorrowRate: BigNumber;
            poolSupplyRate: BigNumber;
            poolBorrowRate: BigNumber;
        }>;
        getTotalBorrow(overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            p2pBorrowAmount: BigNumber;
            poolBorrowAmount: BigNumber;
            totalBorrowAmount: BigNumber;
        }>;
        getTotalMarketBorrow(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber
        ] & {
            p2pBorrowAmount: BigNumber;
            poolBorrowAmount: BigNumber;
        }>;
        getTotalMarketSupply(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber
        ] & {
            p2pSupplyAmount: BigNumber;
            poolSupplyAmount: BigNumber;
        }>;
        getTotalSupply(overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            p2pSupplyAmount: BigNumber;
            poolSupplyAmount: BigNumber;
            totalSupplyAmount: BigNumber;
        }>;
        getUserBalanceStates(_user: PromiseOrValue<string>, _updatedMarkets: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            collateralValue: BigNumber;
            debtValue: BigNumber;
            maxDebtValue: BigNumber;
        }>;
        getUserHealthFactor(_user: PromiseOrValue<string>, _updatedMarkets: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<BigNumber>;
        getUserHypotheticalBalanceStates(_user: PromiseOrValue<string>, _poolTokenAddress: PromiseOrValue<string>, _withdrawnAmount: PromiseOrValue<BigNumberish>, _borrowedAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            debtValue: BigNumber;
            maxDebtValue: BigNumber;
        }>;
        getUserLiquidityDataForAsset(_user: PromiseOrValue<string>, _poolTokenAddress: PromiseOrValue<string>, _getUpdatedIndexes: PromiseOrValue<boolean>, _oracle: PromiseOrValue<string>, overrides?: CallOverrides): Promise<Types.AssetLiquidityDataStructOutput>;
        getUserMaxCapacitiesForAsset(_user: PromiseOrValue<string>, _poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber
        ] & {
            withdrawable: BigNumber;
            borrowable: BigNumber;
        }>;
        getUserUnclaimedRewards(_poolTokenAddresses: PromiseOrValue<string>[], _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        initialize(_morphoAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        isLiquidatable(_user: PromiseOrValue<string>, _updatedMarkets: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<boolean>;
        isMarketCreated(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        isMarketCreatedAndNotPaused(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        isMarketCreatedAndNotPausedNorPartiallyPaused(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        morpho(overrides?: CallOverrides): Promise<string>;
        rewardsManager(overrides?: CallOverrides): Promise<string>;
    };
    filters: {};
    estimateGas: {
        MAX_BASIS_POINTS(overrides?: CallOverrides): Promise<BigNumber>;
        WAD(overrides?: CallOverrides): Promise<BigNumber>;
        comptroller(overrides?: CallOverrides): Promise<BigNumber>;
        computeLiquidationRepayAmount(_user: PromiseOrValue<string>, _poolTokenBorrowedAddress: PromiseOrValue<string>, _poolTokenCollateralAddress: PromiseOrValue<string>, _updatedMarkets: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<BigNumber>;
        getAccruedBorrowerComp(_borrower: PromiseOrValue<string>, _poolTokenAddress: PromiseOrValue<string>, _balance: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getAccruedSupplierComp(_supplier: PromiseOrValue<string>, _poolTokenAddress: PromiseOrValue<string>, _balance: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getAdvancedMarketData(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getAllMarkets(overrides?: CallOverrides): Promise<BigNumber>;
        getAverageBorrowRatePerBlock(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getAverageSupplyRatePerBlock(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getCurrentBorrowBalanceInOf(_poolTokenAddress: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getCurrentCompBorrowIndex(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getCurrentCompSupplyIndex(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getCurrentP2PBorrowIndex(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getCurrentP2PSupplyIndex(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getCurrentPoolIndexes(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getCurrentSupplyBalanceInOf(_poolTokenAddress: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getCurrentUserBorrowRatePerBlock(_poolTokenAddress: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getCurrentUserSupplyRatePerBlock(_poolTokenAddress: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getEnteredMarkets(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getIndexes(_poolTokenAddress: PromiseOrValue<string>, _getUpdatedIndexes: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<BigNumber>;
        getMainMarketData(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getMarketConfiguration(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getNextUserBorrowRatePerBlock(_poolTokenAddress: PromiseOrValue<string>, _user: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getNextUserSupplyRatePerBlock(_poolTokenAddress: PromiseOrValue<string>, _user: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getRatesPerBlock(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getTotalBorrow(overrides?: CallOverrides): Promise<BigNumber>;
        getTotalMarketBorrow(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getTotalMarketSupply(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getTotalSupply(overrides?: CallOverrides): Promise<BigNumber>;
        getUserBalanceStates(_user: PromiseOrValue<string>, _updatedMarkets: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<BigNumber>;
        getUserHealthFactor(_user: PromiseOrValue<string>, _updatedMarkets: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<BigNumber>;
        getUserHypotheticalBalanceStates(_user: PromiseOrValue<string>, _poolTokenAddress: PromiseOrValue<string>, _withdrawnAmount: PromiseOrValue<BigNumberish>, _borrowedAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getUserLiquidityDataForAsset(_user: PromiseOrValue<string>, _poolTokenAddress: PromiseOrValue<string>, _getUpdatedIndexes: PromiseOrValue<boolean>, _oracle: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getUserMaxCapacitiesForAsset(_user: PromiseOrValue<string>, _poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getUserUnclaimedRewards(_poolTokenAddresses: PromiseOrValue<string>[], _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        initialize(_morphoAddress: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        isLiquidatable(_user: PromiseOrValue<string>, _updatedMarkets: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<BigNumber>;
        isMarketCreated(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        isMarketCreatedAndNotPaused(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        isMarketCreatedAndNotPausedNorPartiallyPaused(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        morpho(overrides?: CallOverrides): Promise<BigNumber>;
        rewardsManager(overrides?: CallOverrides): Promise<BigNumber>;
    };
    populateTransaction: {
        MAX_BASIS_POINTS(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        WAD(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        comptroller(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        computeLiquidationRepayAmount(_user: PromiseOrValue<string>, _poolTokenBorrowedAddress: PromiseOrValue<string>, _poolTokenCollateralAddress: PromiseOrValue<string>, _updatedMarkets: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getAccruedBorrowerComp(_borrower: PromiseOrValue<string>, _poolTokenAddress: PromiseOrValue<string>, _balance: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getAccruedSupplierComp(_supplier: PromiseOrValue<string>, _poolTokenAddress: PromiseOrValue<string>, _balance: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getAdvancedMarketData(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getAllMarkets(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getAverageBorrowRatePerBlock(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getAverageSupplyRatePerBlock(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getCurrentBorrowBalanceInOf(_poolTokenAddress: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getCurrentCompBorrowIndex(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getCurrentCompSupplyIndex(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getCurrentP2PBorrowIndex(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getCurrentP2PSupplyIndex(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getCurrentPoolIndexes(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getCurrentSupplyBalanceInOf(_poolTokenAddress: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getCurrentUserBorrowRatePerBlock(_poolTokenAddress: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getCurrentUserSupplyRatePerBlock(_poolTokenAddress: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getEnteredMarkets(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getIndexes(_poolTokenAddress: PromiseOrValue<string>, _getUpdatedIndexes: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getMainMarketData(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getMarketConfiguration(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getNextUserBorrowRatePerBlock(_poolTokenAddress: PromiseOrValue<string>, _user: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getNextUserSupplyRatePerBlock(_poolTokenAddress: PromiseOrValue<string>, _user: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getRatesPerBlock(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getTotalBorrow(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getTotalMarketBorrow(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getTotalMarketSupply(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getTotalSupply(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getUserBalanceStates(_user: PromiseOrValue<string>, _updatedMarkets: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getUserHealthFactor(_user: PromiseOrValue<string>, _updatedMarkets: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getUserHypotheticalBalanceStates(_user: PromiseOrValue<string>, _poolTokenAddress: PromiseOrValue<string>, _withdrawnAmount: PromiseOrValue<BigNumberish>, _borrowedAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getUserLiquidityDataForAsset(_user: PromiseOrValue<string>, _poolTokenAddress: PromiseOrValue<string>, _getUpdatedIndexes: PromiseOrValue<boolean>, _oracle: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getUserMaxCapacitiesForAsset(_user: PromiseOrValue<string>, _poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getUserUnclaimedRewards(_poolTokenAddresses: PromiseOrValue<string>[], _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        initialize(_morphoAddress: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        isLiquidatable(_user: PromiseOrValue<string>, _updatedMarkets: PromiseOrValue<string>[], overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isMarketCreated(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isMarketCreatedAndNotPaused(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isMarketCreatedAndNotPausedNorPartiallyPaused(_poolTokenAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        morpho(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        rewardsManager(overrides?: CallOverrides): Promise<PopulatedTransaction>;
    };
}
