import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, 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 LiquidityDataStruct = {
        collateral: PromiseOrValue<BigNumberish>;
        maxDebt: PromiseOrValue<BigNumberish>;
        liquidationThreshold: PromiseOrValue<BigNumberish>;
        debt: PromiseOrValue<BigNumberish>;
    };
    type LiquidityDataStructOutput = [BigNumber, BigNumber, BigNumber, BigNumber] & {
        collateral: BigNumber;
        maxDebt: BigNumber;
        liquidationThreshold: BigNumber;
        debt: BigNumber;
    };
    type AssetLiquidityDataStruct = {
        decimals: PromiseOrValue<BigNumberish>;
        tokenUnit: PromiseOrValue<BigNumberish>;
        liquidationThreshold: PromiseOrValue<BigNumberish>;
        ltv: PromiseOrValue<BigNumberish>;
        underlyingPrice: PromiseOrValue<BigNumberish>;
        collateral: PromiseOrValue<BigNumberish>;
        debt: PromiseOrValue<BigNumberish>;
    };
    type AssetLiquidityDataStructOutput = [
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        decimals: BigNumber;
        tokenUnit: BigNumber;
        liquidationThreshold: BigNumber;
        ltv: BigNumber;
        underlyingPrice: BigNumber;
        collateral: BigNumber;
        debt: BigNumber;
    };
}
export interface MorphoAaveV2LensInterface extends utils.Interface {
    functions: {
        'DEFAULT_LIQUIDATION_CLOSE_FACTOR()': FunctionFragment;
        'HEALTH_FACTOR_LIQUIDATION_THRESHOLD()': FunctionFragment;
        '_getCurrentBorrowBalanceInOf(address,address)': FunctionFragment;
        '_getCurrentSupplyBalanceInOf(address,address)': FunctionFragment;
        '_getIndexes(address)': FunctionFragment;
        '_getTotalMarketBorrow(address)': FunctionFragment;
        '_getTotalMarketSupply(address)': FunctionFragment;
        'addressesProvider()': FunctionFragment;
        'computeLiquidationRepayAmount(address,address,address)': FunctionFragment;
        'getAdvancedMarketData(address)': FunctionFragment;
        'getAllMarkets()': FunctionFragment;
        'getAverageBorrowRatePerYear(address)': FunctionFragment;
        'getAverageSupplyRatePerYear(address)': FunctionFragment;
        'getCurrentBorrowBalanceInOf(address,address)': FunctionFragment;
        'getCurrentP2PBorrowIndex(address)': FunctionFragment;
        'getCurrentP2PSupplyIndex(address)': FunctionFragment;
        'getCurrentSupplyBalanceInOf(address,address)': FunctionFragment;
        'getCurrentUserBorrowRatePerYear(address,address)': FunctionFragment;
        'getCurrentUserSupplyRatePerYear(address,address)': FunctionFragment;
        'getEnteredMarkets(address)': FunctionFragment;
        'getIndexes(address)': FunctionFragment;
        'getMainMarketData(address)': FunctionFragment;
        'getMarketConfiguration(address)': FunctionFragment;
        'getNextUserBorrowRatePerYear(address,address,uint256)': FunctionFragment;
        'getNextUserSupplyRatePerYear(address,address,uint256)': FunctionFragment;
        'getRatesPerYear(address)': FunctionFragment;
        'getTotalBorrow()': FunctionFragment;
        'getTotalMarketBorrow(address)': FunctionFragment;
        'getTotalMarketSupply(address)': FunctionFragment;
        'getTotalSupply()': FunctionFragment;
        'getUserBalanceStates(address)': FunctionFragment;
        'getUserHealthFactor(address)': FunctionFragment;
        'getUserHypotheticalBalanceStates(address,address,uint256,uint256)': FunctionFragment;
        'getUserHypotheticalHealthFactor(address,address,uint256,uint256)': FunctionFragment;
        'getUserLiquidityDataForAsset(address,address,address)': FunctionFragment;
        'getUserMaxCapacitiesForAsset(address,address)': FunctionFragment;
        'isLiquidatable(address)': FunctionFragment;
        'isMarketCreated(address)': FunctionFragment;
        'isMarketCreatedAndNotPaused(address)': FunctionFragment;
        'isMarketCreatedAndNotPausedNorPartiallyPaused(address)': FunctionFragment;
        'morpho()': FunctionFragment;
        'pool()': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'DEFAULT_LIQUIDATION_CLOSE_FACTOR' | 'HEALTH_FACTOR_LIQUIDATION_THRESHOLD' | '_getCurrentBorrowBalanceInOf' | '_getCurrentSupplyBalanceInOf' | '_getIndexes' | '_getTotalMarketBorrow' | '_getTotalMarketSupply' | 'addressesProvider' | 'computeLiquidationRepayAmount' | 'getAdvancedMarketData' | 'getAllMarkets' | 'getAverageBorrowRatePerYear' | 'getAverageSupplyRatePerYear' | 'getCurrentBorrowBalanceInOf' | 'getCurrentP2PBorrowIndex' | 'getCurrentP2PSupplyIndex' | 'getCurrentSupplyBalanceInOf' | 'getCurrentUserBorrowRatePerYear' | 'getCurrentUserSupplyRatePerYear' | 'getEnteredMarkets' | 'getIndexes' | 'getMainMarketData' | 'getMarketConfiguration' | 'getNextUserBorrowRatePerYear' | 'getNextUserSupplyRatePerYear' | 'getRatesPerYear' | 'getTotalBorrow' | 'getTotalMarketBorrow' | 'getTotalMarketSupply' | 'getTotalSupply' | 'getUserBalanceStates' | 'getUserHealthFactor' | 'getUserHypotheticalBalanceStates' | 'getUserHypotheticalHealthFactor' | 'getUserLiquidityDataForAsset' | 'getUserMaxCapacitiesForAsset' | 'isLiquidatable' | 'isMarketCreated' | 'isMarketCreatedAndNotPaused' | 'isMarketCreatedAndNotPausedNorPartiallyPaused' | 'morpho' | 'pool'): FunctionFragment;
    encodeFunctionData(functionFragment: 'DEFAULT_LIQUIDATION_CLOSE_FACTOR', values?: undefined): string;
    encodeFunctionData(functionFragment: 'HEALTH_FACTOR_LIQUIDATION_THRESHOLD', values?: undefined): string;
    encodeFunctionData(functionFragment: '_getCurrentBorrowBalanceInOf', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: '_getCurrentSupplyBalanceInOf', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: '_getIndexes', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: '_getTotalMarketBorrow', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: '_getTotalMarketSupply', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'addressesProvider', values?: undefined): string;
    encodeFunctionData(functionFragment: 'computeLiquidationRepayAmount', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getAdvancedMarketData', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getAllMarkets', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getAverageBorrowRatePerYear', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getAverageSupplyRatePerYear', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getCurrentBorrowBalanceInOf', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getCurrentP2PBorrowIndex', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getCurrentP2PSupplyIndex', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getCurrentSupplyBalanceInOf', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getCurrentUserBorrowRatePerYear', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getCurrentUserSupplyRatePerYear', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getEnteredMarkets', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getIndexes', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getMainMarketData', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getMarketConfiguration', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getNextUserBorrowRatePerYear', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getNextUserSupplyRatePerYear', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getRatesPerYear', 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>]): string;
    encodeFunctionData(functionFragment: 'getUserHealthFactor', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getUserHypotheticalBalanceStates', values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'getUserHypotheticalHealthFactor', values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: 'getUserLiquidityDataForAsset', values: [PromiseOrValue<string>, PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getUserMaxCapacitiesForAsset', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'isLiquidatable', values: [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: 'pool', values?: undefined): string;
    decodeFunctionResult(functionFragment: 'DEFAULT_LIQUIDATION_CLOSE_FACTOR', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'HEALTH_FACTOR_LIQUIDATION_THRESHOLD', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: '_getCurrentBorrowBalanceInOf', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: '_getCurrentSupplyBalanceInOf', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: '_getIndexes', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: '_getTotalMarketBorrow', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: '_getTotalMarketSupply', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'addressesProvider', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'computeLiquidationRepayAmount', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getAdvancedMarketData', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getAllMarkets', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getAverageBorrowRatePerYear', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getAverageSupplyRatePerYear', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getCurrentBorrowBalanceInOf', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getCurrentP2PBorrowIndex', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getCurrentP2PSupplyIndex', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getCurrentSupplyBalanceInOf', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getCurrentUserBorrowRatePerYear', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getCurrentUserSupplyRatePerYear', 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: 'getNextUserBorrowRatePerYear', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getNextUserSupplyRatePerYear', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getRatesPerYear', 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: 'getUserHypotheticalHealthFactor', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getUserLiquidityDataForAsset', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getUserMaxCapacitiesForAsset', 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: 'pool', data: BytesLike): Result;
    events: {};
}
export interface MorphoAaveV2Lens extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: MorphoAaveV2LensInterface;
    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: {
        DEFAULT_LIQUIDATION_CLOSE_FACTOR(overrides?: CallOverrides): Promise<[number]>;
        HEALTH_FACTOR_LIQUIDATION_THRESHOLD(overrides?: CallOverrides): Promise<[BigNumber]>;
        _getCurrentBorrowBalanceInOf(_poolToken: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            string,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            underlyingToken: string;
            balanceInP2P: BigNumber;
            balanceOnPool: BigNumber;
            totalBalance: BigNumber;
        }>;
        _getCurrentSupplyBalanceInOf(_poolToken: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            string,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            underlyingToken: string;
            balanceInP2P: BigNumber;
            balanceOnPool: BigNumber;
            totalBalance: BigNumber;
        }>;
        _getIndexes(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            string,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            underlyingToken: string;
            p2pSupplyIndex: BigNumber;
            p2pBorrowIndex: BigNumber;
            poolSupplyIndex: BigNumber;
            poolBorrowIndex: BigNumber;
        }>;
        _getTotalMarketBorrow(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            string,
            BigNumber,
            BigNumber
        ] & {
            underlyingToken: string;
            p2pBorrowAmount: BigNumber;
            poolBorrowAmount: BigNumber;
        }>;
        _getTotalMarketSupply(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            string,
            BigNumber,
            BigNumber
        ] & {
            underlyingToken: string;
            p2pSupplyAmount: BigNumber;
            poolSupplyAmount: BigNumber;
        }>;
        addressesProvider(overrides?: CallOverrides): Promise<[string]>;
        computeLiquidationRepayAmount(_user: PromiseOrValue<string>, _poolTokenBorrowedAddress: PromiseOrValue<string>, _poolTokenCollateralAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getAdvancedMarketData(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            number,
            BigNumber,
            BigNumber
        ] & {
            p2pSupplyIndex: BigNumber;
            p2pBorrowIndex: BigNumber;
            poolSupplyIndex: BigNumber;
            poolBorrowIndex: BigNumber;
            lastUpdateTimestamp: number;
            p2pSupplyDelta: BigNumber;
            p2pBorrowDelta: BigNumber;
        }>;
        getAllMarkets(overrides?: CallOverrides): Promise<[string[]] & {
            marketsCreated: string[];
        }>;
        getAverageBorrowRatePerYear(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            avgBorrowRatePerYear: BigNumber;
            p2pBorrowAmount: BigNumber;
            poolBorrowAmount: BigNumber;
        }>;
        getAverageSupplyRatePerYear(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            avgSupplyRatePerYear: BigNumber;
            p2pSupplyAmount: BigNumber;
            poolSupplyAmount: BigNumber;
        }>;
        getCurrentBorrowBalanceInOf(_poolToken: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            balanceInP2P: BigNumber;
            balanceOnPool: BigNumber;
            totalBalance: BigNumber;
        }>;
        getCurrentP2PBorrowIndex(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber] & {
            currentP2PBorrowIndex: BigNumber;
        }>;
        getCurrentP2PSupplyIndex(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber] & {
            currentP2PSupplyIndex: BigNumber;
        }>;
        getCurrentSupplyBalanceInOf(_poolToken: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            balanceInP2P: BigNumber;
            balanceOnPool: BigNumber;
            totalBalance: BigNumber;
        }>;
        getCurrentUserBorrowRatePerYear(_poolToken: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getCurrentUserSupplyRatePerYear(_poolToken: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getEnteredMarkets(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[string[]] & {
            enteredMarkets: string[];
        }>;
        getIndexes(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            p2pSupplyIndex: BigNumber;
            p2pBorrowIndex: BigNumber;
            poolSupplyIndex: BigNumber;
            poolBorrowIndex: BigNumber;
        }>;
        getMainMarketData(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            avgSupplyRatePerYear: BigNumber;
            avgBorrowRatePerYear: BigNumber;
            p2pSupplyAmount: BigNumber;
            p2pBorrowAmount: BigNumber;
            poolSupplyAmount: BigNumber;
            poolBorrowAmount: BigNumber;
        }>;
        getMarketConfiguration(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            string,
            boolean,
            boolean,
            boolean,
            boolean,
            number,
            number,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            underlying: string;
            isCreated: boolean;
            isP2PDisabled: boolean;
            isPaused: boolean;
            isPartiallyPaused: boolean;
            reserveFactor: number;
            p2pIndexCursor: number;
            loanToValue: BigNumber;
            liquidationThreshold: BigNumber;
            liquidationBonus: BigNumber;
            decimals: BigNumber;
        }>;
        getNextUserBorrowRatePerYear(_poolToken: PromiseOrValue<string>, _user: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            nextBorrowRatePerYear: BigNumber;
            balanceInP2P: BigNumber;
            balanceOnPool: BigNumber;
            totalBalance: BigNumber;
        }>;
        getNextUserSupplyRatePerYear(_poolToken: PromiseOrValue<string>, _user: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            nextSupplyRatePerYear: BigNumber;
            balanceInP2P: BigNumber;
            balanceOnPool: BigNumber;
            totalBalance: BigNumber;
        }>;
        getRatesPerYear(_poolToken: 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(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber
        ] & {
            p2pBorrowAmount: BigNumber;
            poolBorrowAmount: BigNumber;
        }>;
        getTotalMarketSupply(_poolToken: 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>, overrides?: CallOverrides): Promise<[Types.LiquidityDataStructOutput]>;
        getUserHealthFactor(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getUserHypotheticalBalanceStates(_user: PromiseOrValue<string>, _poolToken: PromiseOrValue<string>, _withdrawnAmount: PromiseOrValue<BigNumberish>, _borrowedAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            Types.LiquidityDataStructOutput
        ] & {
            liquidityData: Types.LiquidityDataStructOutput;
        }>;
        getUserHypotheticalHealthFactor(_user: PromiseOrValue<string>, _poolToken: PromiseOrValue<string>, _withdrawnAmount: PromiseOrValue<BigNumberish>, _borrowedAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber] & {
            healthFactor: BigNumber;
        }>;
        getUserLiquidityDataForAsset(_user: PromiseOrValue<string>, _poolToken: PromiseOrValue<string>, _oracle: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            Types.AssetLiquidityDataStructOutput
        ] & {
            assetData: Types.AssetLiquidityDataStructOutput;
        }>;
        getUserMaxCapacitiesForAsset(_user: PromiseOrValue<string>, _poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber
        ] & {
            withdrawable: BigNumber;
            borrowable: BigNumber;
        }>;
        isLiquidatable(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        isMarketCreated(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        isMarketCreatedAndNotPaused(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        isMarketCreatedAndNotPausedNorPartiallyPaused(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        morpho(overrides?: CallOverrides): Promise<[string]>;
        pool(overrides?: CallOverrides): Promise<[string]>;
    };
    DEFAULT_LIQUIDATION_CLOSE_FACTOR(overrides?: CallOverrides): Promise<number>;
    HEALTH_FACTOR_LIQUIDATION_THRESHOLD(overrides?: CallOverrides): Promise<BigNumber>;
    _getCurrentBorrowBalanceInOf(_poolToken: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
        string,
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        underlyingToken: string;
        balanceInP2P: BigNumber;
        balanceOnPool: BigNumber;
        totalBalance: BigNumber;
    }>;
    _getCurrentSupplyBalanceInOf(_poolToken: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
        string,
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        underlyingToken: string;
        balanceInP2P: BigNumber;
        balanceOnPool: BigNumber;
        totalBalance: BigNumber;
    }>;
    _getIndexes(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
        string,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        underlyingToken: string;
        p2pSupplyIndex: BigNumber;
        p2pBorrowIndex: BigNumber;
        poolSupplyIndex: BigNumber;
        poolBorrowIndex: BigNumber;
    }>;
    _getTotalMarketBorrow(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
        string,
        BigNumber,
        BigNumber
    ] & {
        underlyingToken: string;
        p2pBorrowAmount: BigNumber;
        poolBorrowAmount: BigNumber;
    }>;
    _getTotalMarketSupply(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
        string,
        BigNumber,
        BigNumber
    ] & {
        underlyingToken: string;
        p2pSupplyAmount: BigNumber;
        poolSupplyAmount: BigNumber;
    }>;
    addressesProvider(overrides?: CallOverrides): Promise<string>;
    computeLiquidationRepayAmount(_user: PromiseOrValue<string>, _poolTokenBorrowedAddress: PromiseOrValue<string>, _poolTokenCollateralAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    getAdvancedMarketData(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        number,
        BigNumber,
        BigNumber
    ] & {
        p2pSupplyIndex: BigNumber;
        p2pBorrowIndex: BigNumber;
        poolSupplyIndex: BigNumber;
        poolBorrowIndex: BigNumber;
        lastUpdateTimestamp: number;
        p2pSupplyDelta: BigNumber;
        p2pBorrowDelta: BigNumber;
    }>;
    getAllMarkets(overrides?: CallOverrides): Promise<string[]>;
    getAverageBorrowRatePerYear(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        avgBorrowRatePerYear: BigNumber;
        p2pBorrowAmount: BigNumber;
        poolBorrowAmount: BigNumber;
    }>;
    getAverageSupplyRatePerYear(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        avgSupplyRatePerYear: BigNumber;
        p2pSupplyAmount: BigNumber;
        poolSupplyAmount: BigNumber;
    }>;
    getCurrentBorrowBalanceInOf(_poolToken: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        balanceInP2P: BigNumber;
        balanceOnPool: BigNumber;
        totalBalance: BigNumber;
    }>;
    getCurrentP2PBorrowIndex(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    getCurrentP2PSupplyIndex(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    getCurrentSupplyBalanceInOf(_poolToken: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        balanceInP2P: BigNumber;
        balanceOnPool: BigNumber;
        totalBalance: BigNumber;
    }>;
    getCurrentUserBorrowRatePerYear(_poolToken: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    getCurrentUserSupplyRatePerYear(_poolToken: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    getEnteredMarkets(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string[]>;
    getIndexes(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        p2pSupplyIndex: BigNumber;
        p2pBorrowIndex: BigNumber;
        poolSupplyIndex: BigNumber;
        poolBorrowIndex: BigNumber;
    }>;
    getMainMarketData(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        avgSupplyRatePerYear: BigNumber;
        avgBorrowRatePerYear: BigNumber;
        p2pSupplyAmount: BigNumber;
        p2pBorrowAmount: BigNumber;
        poolSupplyAmount: BigNumber;
        poolBorrowAmount: BigNumber;
    }>;
    getMarketConfiguration(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
        string,
        boolean,
        boolean,
        boolean,
        boolean,
        number,
        number,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        underlying: string;
        isCreated: boolean;
        isP2PDisabled: boolean;
        isPaused: boolean;
        isPartiallyPaused: boolean;
        reserveFactor: number;
        p2pIndexCursor: number;
        loanToValue: BigNumber;
        liquidationThreshold: BigNumber;
        liquidationBonus: BigNumber;
        decimals: BigNumber;
    }>;
    getNextUserBorrowRatePerYear(_poolToken: PromiseOrValue<string>, _user: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        nextBorrowRatePerYear: BigNumber;
        balanceInP2P: BigNumber;
        balanceOnPool: BigNumber;
        totalBalance: BigNumber;
    }>;
    getNextUserSupplyRatePerYear(_poolToken: PromiseOrValue<string>, _user: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        nextSupplyRatePerYear: BigNumber;
        balanceInP2P: BigNumber;
        balanceOnPool: BigNumber;
        totalBalance: BigNumber;
    }>;
    getRatesPerYear(_poolToken: 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(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber
    ] & {
        p2pBorrowAmount: BigNumber;
        poolBorrowAmount: BigNumber;
    }>;
    getTotalMarketSupply(_poolToken: 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>, overrides?: CallOverrides): Promise<Types.LiquidityDataStructOutput>;
    getUserHealthFactor(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    getUserHypotheticalBalanceStates(_user: PromiseOrValue<string>, _poolToken: PromiseOrValue<string>, _withdrawnAmount: PromiseOrValue<BigNumberish>, _borrowedAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<Types.LiquidityDataStructOutput>;
    getUserHypotheticalHealthFactor(_user: PromiseOrValue<string>, _poolToken: PromiseOrValue<string>, _withdrawnAmount: PromiseOrValue<BigNumberish>, _borrowedAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    getUserLiquidityDataForAsset(_user: PromiseOrValue<string>, _poolToken: PromiseOrValue<string>, _oracle: PromiseOrValue<string>, overrides?: CallOverrides): Promise<Types.AssetLiquidityDataStructOutput>;
    getUserMaxCapacitiesForAsset(_user: PromiseOrValue<string>, _poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
        withdrawable: BigNumber;
        borrowable: BigNumber;
    }>;
    isLiquidatable(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    isMarketCreated(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    isMarketCreatedAndNotPaused(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    isMarketCreatedAndNotPausedNorPartiallyPaused(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    morpho(overrides?: CallOverrides): Promise<string>;
    pool(overrides?: CallOverrides): Promise<string>;
    callStatic: {
        DEFAULT_LIQUIDATION_CLOSE_FACTOR(overrides?: CallOverrides): Promise<number>;
        HEALTH_FACTOR_LIQUIDATION_THRESHOLD(overrides?: CallOverrides): Promise<BigNumber>;
        _getCurrentBorrowBalanceInOf(_poolToken: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            string,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            underlyingToken: string;
            balanceInP2P: BigNumber;
            balanceOnPool: BigNumber;
            totalBalance: BigNumber;
        }>;
        _getCurrentSupplyBalanceInOf(_poolToken: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            string,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            underlyingToken: string;
            balanceInP2P: BigNumber;
            balanceOnPool: BigNumber;
            totalBalance: BigNumber;
        }>;
        _getIndexes(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            string,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            underlyingToken: string;
            p2pSupplyIndex: BigNumber;
            p2pBorrowIndex: BigNumber;
            poolSupplyIndex: BigNumber;
            poolBorrowIndex: BigNumber;
        }>;
        _getTotalMarketBorrow(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            string,
            BigNumber,
            BigNumber
        ] & {
            underlyingToken: string;
            p2pBorrowAmount: BigNumber;
            poolBorrowAmount: BigNumber;
        }>;
        _getTotalMarketSupply(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            string,
            BigNumber,
            BigNumber
        ] & {
            underlyingToken: string;
            p2pSupplyAmount: BigNumber;
            poolSupplyAmount: BigNumber;
        }>;
        addressesProvider(overrides?: CallOverrides): Promise<string>;
        computeLiquidationRepayAmount(_user: PromiseOrValue<string>, _poolTokenBorrowedAddress: PromiseOrValue<string>, _poolTokenCollateralAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getAdvancedMarketData(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            number,
            BigNumber,
            BigNumber
        ] & {
            p2pSupplyIndex: BigNumber;
            p2pBorrowIndex: BigNumber;
            poolSupplyIndex: BigNumber;
            poolBorrowIndex: BigNumber;
            lastUpdateTimestamp: number;
            p2pSupplyDelta: BigNumber;
            p2pBorrowDelta: BigNumber;
        }>;
        getAllMarkets(overrides?: CallOverrides): Promise<string[]>;
        getAverageBorrowRatePerYear(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            avgBorrowRatePerYear: BigNumber;
            p2pBorrowAmount: BigNumber;
            poolBorrowAmount: BigNumber;
        }>;
        getAverageSupplyRatePerYear(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            avgSupplyRatePerYear: BigNumber;
            p2pSupplyAmount: BigNumber;
            poolSupplyAmount: BigNumber;
        }>;
        getCurrentBorrowBalanceInOf(_poolToken: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            balanceInP2P: BigNumber;
            balanceOnPool: BigNumber;
            totalBalance: BigNumber;
        }>;
        getCurrentP2PBorrowIndex(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getCurrentP2PSupplyIndex(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getCurrentSupplyBalanceInOf(_poolToken: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            balanceInP2P: BigNumber;
            balanceOnPool: BigNumber;
            totalBalance: BigNumber;
        }>;
        getCurrentUserBorrowRatePerYear(_poolToken: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getCurrentUserSupplyRatePerYear(_poolToken: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getEnteredMarkets(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string[]>;
        getIndexes(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            p2pSupplyIndex: BigNumber;
            p2pBorrowIndex: BigNumber;
            poolSupplyIndex: BigNumber;
            poolBorrowIndex: BigNumber;
        }>;
        getMainMarketData(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            avgSupplyRatePerYear: BigNumber;
            avgBorrowRatePerYear: BigNumber;
            p2pSupplyAmount: BigNumber;
            p2pBorrowAmount: BigNumber;
            poolSupplyAmount: BigNumber;
            poolBorrowAmount: BigNumber;
        }>;
        getMarketConfiguration(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            string,
            boolean,
            boolean,
            boolean,
            boolean,
            number,
            number,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            underlying: string;
            isCreated: boolean;
            isP2PDisabled: boolean;
            isPaused: boolean;
            isPartiallyPaused: boolean;
            reserveFactor: number;
            p2pIndexCursor: number;
            loanToValue: BigNumber;
            liquidationThreshold: BigNumber;
            liquidationBonus: BigNumber;
            decimals: BigNumber;
        }>;
        getNextUserBorrowRatePerYear(_poolToken: PromiseOrValue<string>, _user: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            nextBorrowRatePerYear: BigNumber;
            balanceInP2P: BigNumber;
            balanceOnPool: BigNumber;
            totalBalance: BigNumber;
        }>;
        getNextUserSupplyRatePerYear(_poolToken: PromiseOrValue<string>, _user: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            nextSupplyRatePerYear: BigNumber;
            balanceInP2P: BigNumber;
            balanceOnPool: BigNumber;
            totalBalance: BigNumber;
        }>;
        getRatesPerYear(_poolToken: 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(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber
        ] & {
            p2pBorrowAmount: BigNumber;
            poolBorrowAmount: BigNumber;
        }>;
        getTotalMarketSupply(_poolToken: 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>, overrides?: CallOverrides): Promise<Types.LiquidityDataStructOutput>;
        getUserHealthFactor(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getUserHypotheticalBalanceStates(_user: PromiseOrValue<string>, _poolToken: PromiseOrValue<string>, _withdrawnAmount: PromiseOrValue<BigNumberish>, _borrowedAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<Types.LiquidityDataStructOutput>;
        getUserHypotheticalHealthFactor(_user: PromiseOrValue<string>, _poolToken: PromiseOrValue<string>, _withdrawnAmount: PromiseOrValue<BigNumberish>, _borrowedAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getUserLiquidityDataForAsset(_user: PromiseOrValue<string>, _poolToken: PromiseOrValue<string>, _oracle: PromiseOrValue<string>, overrides?: CallOverrides): Promise<Types.AssetLiquidityDataStructOutput>;
        getUserMaxCapacitiesForAsset(_user: PromiseOrValue<string>, _poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber
        ] & {
            withdrawable: BigNumber;
            borrowable: BigNumber;
        }>;
        isLiquidatable(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        isMarketCreated(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        isMarketCreatedAndNotPaused(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        isMarketCreatedAndNotPausedNorPartiallyPaused(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        morpho(overrides?: CallOverrides): Promise<string>;
        pool(overrides?: CallOverrides): Promise<string>;
    };
    filters: {};
    estimateGas: {
        DEFAULT_LIQUIDATION_CLOSE_FACTOR(overrides?: CallOverrides): Promise<BigNumber>;
        HEALTH_FACTOR_LIQUIDATION_THRESHOLD(overrides?: CallOverrides): Promise<BigNumber>;
        _getCurrentBorrowBalanceInOf(_poolToken: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        _getCurrentSupplyBalanceInOf(_poolToken: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        _getIndexes(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        _getTotalMarketBorrow(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        _getTotalMarketSupply(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        addressesProvider(overrides?: CallOverrides): Promise<BigNumber>;
        computeLiquidationRepayAmount(_user: PromiseOrValue<string>, _poolTokenBorrowedAddress: PromiseOrValue<string>, _poolTokenCollateralAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getAdvancedMarketData(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getAllMarkets(overrides?: CallOverrides): Promise<BigNumber>;
        getAverageBorrowRatePerYear(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getAverageSupplyRatePerYear(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getCurrentBorrowBalanceInOf(_poolToken: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getCurrentP2PBorrowIndex(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getCurrentP2PSupplyIndex(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getCurrentSupplyBalanceInOf(_poolToken: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getCurrentUserBorrowRatePerYear(_poolToken: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getCurrentUserSupplyRatePerYear(_poolToken: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getEnteredMarkets(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getIndexes(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getMainMarketData(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getMarketConfiguration(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getNextUserBorrowRatePerYear(_poolToken: PromiseOrValue<string>, _user: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getNextUserSupplyRatePerYear(_poolToken: PromiseOrValue<string>, _user: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getRatesPerYear(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getTotalBorrow(overrides?: CallOverrides): Promise<BigNumber>;
        getTotalMarketBorrow(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getTotalMarketSupply(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getTotalSupply(overrides?: CallOverrides): Promise<BigNumber>;
        getUserBalanceStates(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getUserHealthFactor(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getUserHypotheticalBalanceStates(_user: PromiseOrValue<string>, _poolToken: PromiseOrValue<string>, _withdrawnAmount: PromiseOrValue<BigNumberish>, _borrowedAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getUserHypotheticalHealthFactor(_user: PromiseOrValue<string>, _poolToken: PromiseOrValue<string>, _withdrawnAmount: PromiseOrValue<BigNumberish>, _borrowedAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getUserLiquidityDataForAsset(_user: PromiseOrValue<string>, _poolToken: PromiseOrValue<string>, _oracle: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getUserMaxCapacitiesForAsset(_user: PromiseOrValue<string>, _poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        isLiquidatable(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        isMarketCreated(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        isMarketCreatedAndNotPaused(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        isMarketCreatedAndNotPausedNorPartiallyPaused(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        morpho(overrides?: CallOverrides): Promise<BigNumber>;
        pool(overrides?: CallOverrides): Promise<BigNumber>;
    };
    populateTransaction: {
        DEFAULT_LIQUIDATION_CLOSE_FACTOR(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        HEALTH_FACTOR_LIQUIDATION_THRESHOLD(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        _getCurrentBorrowBalanceInOf(_poolToken: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        _getCurrentSupplyBalanceInOf(_poolToken: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        _getIndexes(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        _getTotalMarketBorrow(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        _getTotalMarketSupply(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        addressesProvider(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        computeLiquidationRepayAmount(_user: PromiseOrValue<string>, _poolTokenBorrowedAddress: PromiseOrValue<string>, _poolTokenCollateralAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getAdvancedMarketData(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getAllMarkets(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getAverageBorrowRatePerYear(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getAverageSupplyRatePerYear(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getCurrentBorrowBalanceInOf(_poolToken: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getCurrentP2PBorrowIndex(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getCurrentP2PSupplyIndex(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getCurrentSupplyBalanceInOf(_poolToken: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getCurrentUserBorrowRatePerYear(_poolToken: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getCurrentUserSupplyRatePerYear(_poolToken: PromiseOrValue<string>, _user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getEnteredMarkets(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getIndexes(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getMainMarketData(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getMarketConfiguration(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getNextUserBorrowRatePerYear(_poolToken: PromiseOrValue<string>, _user: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getNextUserSupplyRatePerYear(_poolToken: PromiseOrValue<string>, _user: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getRatesPerYear(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getTotalBorrow(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getTotalMarketBorrow(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getTotalMarketSupply(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getTotalSupply(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getUserBalanceStates(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getUserHealthFactor(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getUserHypotheticalBalanceStates(_user: PromiseOrValue<string>, _poolToken: PromiseOrValue<string>, _withdrawnAmount: PromiseOrValue<BigNumberish>, _borrowedAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getUserHypotheticalHealthFactor(_user: PromiseOrValue<string>, _poolToken: PromiseOrValue<string>, _withdrawnAmount: PromiseOrValue<BigNumberish>, _borrowedAmount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getUserLiquidityDataForAsset(_user: PromiseOrValue<string>, _poolToken: PromiseOrValue<string>, _oracle: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getUserMaxCapacitiesForAsset(_user: PromiseOrValue<string>, _poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isLiquidatable(_user: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isMarketCreated(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isMarketCreatedAndNotPaused(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isMarketCreatedAndNotPausedNorPartiallyPaused(_poolToken: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        morpho(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pool(overrides?: CallOverrides): Promise<PopulatedTransaction>;
    };
}
