import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from "ethers";
import type { FunctionFragment, Result, EventFragment } from "@ethersproject/abi";
import type { Listener, Provider } from "@ethersproject/providers";
import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common";
export interface ComptrollerInterface extends utils.Interface {
    functions: {
        "_addRewardsDistributor(address)": FunctionFragment;
        "_afterNonReentrant()": FunctionFragment;
        "_becomeImplementation()": FunctionFragment;
        "_beforeNonReentrant()": FunctionFragment;
        "_borrowGuardianPaused()": FunctionFragment;
        "_deployMarket(uint8,bytes,bytes,uint256)": FunctionFragment;
        "_getExtensionFunctions()": FunctionFragment;
        "_mintGuardianPaused()": FunctionFragment;
        "_setCloseFactor(uint256)": FunctionFragment;
        "_setCollateralFactor(address,uint256)": FunctionFragment;
        "_setLiquidationIncentive(uint256)": FunctionFragment;
        "_setPriceOracle(address)": FunctionFragment;
        "_setWhitelistEnforcement(bool)": FunctionFragment;
        "_setWhitelistStatuses(address[],bool[])": FunctionFragment;
        "accountAssets(address,uint256)": FunctionFragment;
        "admin()": FunctionFragment;
        "adminHasRights()": FunctionFragment;
        "allBorrowers(uint256)": FunctionFragment;
        "allMarkets(uint256)": FunctionFragment;
        "borrowAllowed(address,address,uint256)": FunctionFragment;
        "borrowCapForCollateral(address,address)": FunctionFragment;
        "borrowCapGuardian()": FunctionFragment;
        "borrowCaps(address)": FunctionFragment;
        "borrowGuardianPaused(address)": FunctionFragment;
        "borrowWithinLimits(address,uint256)": FunctionFragment;
        "borrowingAgainstCollateralBlacklist(address,address)": FunctionFragment;
        "cTokensByUnderlying(address)": FunctionFragment;
        "checkMembership(address,address)": FunctionFragment;
        "closeFactorMantissa()": FunctionFragment;
        "enforceWhitelist()": FunctionFragment;
        "enterMarkets(address[])": FunctionFragment;
        "exitMarket(address)": FunctionFragment;
        "getAccountLiquidity(address)": FunctionFragment;
        "getAssetsIn(address)": FunctionFragment;
        "getHypotheticalAccountLiquidity(address,address,uint256,uint256)": FunctionFragment;
        "getMaxRedeemOrBorrow(address,address,bool)": FunctionFragment;
        "ionicAdmin()": FunctionFragment;
        "ionicAdminHasRights()": FunctionFragment;
        "isComptroller()": FunctionFragment;
        "isDeprecated(address)": FunctionFragment;
        "liquidateBorrowAllowed(address,address,address,address,uint256)": FunctionFragment;
        "liquidateCalculateSeizeTokens(address,address,uint256)": FunctionFragment;
        "liquidationIncentiveMantissa()": FunctionFragment;
        "markets(address)": FunctionFragment;
        "mintAllowed(address,address,uint256)": FunctionFragment;
        "mintGuardianPaused(address)": FunctionFragment;
        "mintVerify(address,address,uint256,uint256)": FunctionFragment;
        "nonAccruingRewardsDistributors(uint256)": FunctionFragment;
        "oracle()": FunctionFragment;
        "pauseGuardian()": FunctionFragment;
        "pendingAdmin()": FunctionFragment;
        "redeemAllowed(address,address,uint256)": FunctionFragment;
        "redeemVerify(address,address,uint256,uint256)": FunctionFragment;
        "repayBorrowAllowed(address,address,address,uint256)": FunctionFragment;
        "rewardsDistributors(uint256)": FunctionFragment;
        "seizeAllowed(address,address,address,address,uint256)": FunctionFragment;
        "seizeGuardianPaused()": FunctionFragment;
        "suppliers(address)": FunctionFragment;
        "supplyCaps(address)": FunctionFragment;
        "transferAllowed(address,address,address,uint256)": FunctionFragment;
        "transferGuardianPaused()": FunctionFragment;
        "whitelist(address)": FunctionFragment;
        "whitelistArray(uint256)": FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: "_addRewardsDistributor" | "_afterNonReentrant" | "_becomeImplementation" | "_beforeNonReentrant" | "_borrowGuardianPaused" | "_deployMarket" | "_getExtensionFunctions" | "_mintGuardianPaused" | "_setCloseFactor" | "_setCollateralFactor" | "_setLiquidationIncentive" | "_setPriceOracle" | "_setWhitelistEnforcement" | "_setWhitelistStatuses" | "accountAssets" | "admin" | "adminHasRights" | "allBorrowers" | "allMarkets" | "borrowAllowed" | "borrowCapForCollateral" | "borrowCapGuardian" | "borrowCaps" | "borrowGuardianPaused" | "borrowWithinLimits" | "borrowingAgainstCollateralBlacklist" | "cTokensByUnderlying" | "checkMembership" | "closeFactorMantissa" | "enforceWhitelist" | "enterMarkets" | "exitMarket" | "getAccountLiquidity" | "getAssetsIn" | "getHypotheticalAccountLiquidity" | "getMaxRedeemOrBorrow" | "ionicAdmin" | "ionicAdminHasRights" | "isComptroller" | "isDeprecated" | "liquidateBorrowAllowed" | "liquidateCalculateSeizeTokens" | "liquidationIncentiveMantissa" | "markets" | "mintAllowed" | "mintGuardianPaused" | "mintVerify" | "nonAccruingRewardsDistributors" | "oracle" | "pauseGuardian" | "pendingAdmin" | "redeemAllowed" | "redeemVerify" | "repayBorrowAllowed" | "rewardsDistributors" | "seizeAllowed" | "seizeGuardianPaused" | "suppliers" | "supplyCaps" | "transferAllowed" | "transferGuardianPaused" | "whitelist" | "whitelistArray"): FunctionFragment;
    encodeFunctionData(functionFragment: "_addRewardsDistributor", values: [string]): string;
    encodeFunctionData(functionFragment: "_afterNonReentrant", values?: undefined): string;
    encodeFunctionData(functionFragment: "_becomeImplementation", values?: undefined): string;
    encodeFunctionData(functionFragment: "_beforeNonReentrant", values?: undefined): string;
    encodeFunctionData(functionFragment: "_borrowGuardianPaused", values?: undefined): string;
    encodeFunctionData(functionFragment: "_deployMarket", values: [BigNumberish, BytesLike, BytesLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: "_getExtensionFunctions", values?: undefined): string;
    encodeFunctionData(functionFragment: "_mintGuardianPaused", values?: undefined): string;
    encodeFunctionData(functionFragment: "_setCloseFactor", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "_setCollateralFactor", values: [string, BigNumberish]): string;
    encodeFunctionData(functionFragment: "_setLiquidationIncentive", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "_setPriceOracle", values: [string]): string;
    encodeFunctionData(functionFragment: "_setWhitelistEnforcement", values: [boolean]): string;
    encodeFunctionData(functionFragment: "_setWhitelistStatuses", values: [string[], boolean[]]): string;
    encodeFunctionData(functionFragment: "accountAssets", values: [string, BigNumberish]): string;
    encodeFunctionData(functionFragment: "admin", values?: undefined): string;
    encodeFunctionData(functionFragment: "adminHasRights", values?: undefined): string;
    encodeFunctionData(functionFragment: "allBorrowers", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "allMarkets", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "borrowAllowed", values: [string, string, BigNumberish]): string;
    encodeFunctionData(functionFragment: "borrowCapForCollateral", values: [string, string]): string;
    encodeFunctionData(functionFragment: "borrowCapGuardian", values?: undefined): string;
    encodeFunctionData(functionFragment: "borrowCaps", values: [string]): string;
    encodeFunctionData(functionFragment: "borrowGuardianPaused", values: [string]): string;
    encodeFunctionData(functionFragment: "borrowWithinLimits", values: [string, BigNumberish]): string;
    encodeFunctionData(functionFragment: "borrowingAgainstCollateralBlacklist", values: [string, string]): string;
    encodeFunctionData(functionFragment: "cTokensByUnderlying", values: [string]): string;
    encodeFunctionData(functionFragment: "checkMembership", values: [string, string]): string;
    encodeFunctionData(functionFragment: "closeFactorMantissa", values?: undefined): string;
    encodeFunctionData(functionFragment: "enforceWhitelist", values?: undefined): string;
    encodeFunctionData(functionFragment: "enterMarkets", values: [string[]]): string;
    encodeFunctionData(functionFragment: "exitMarket", values: [string]): string;
    encodeFunctionData(functionFragment: "getAccountLiquidity", values: [string]): string;
    encodeFunctionData(functionFragment: "getAssetsIn", values: [string]): string;
    encodeFunctionData(functionFragment: "getHypotheticalAccountLiquidity", values: [string, string, BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "getMaxRedeemOrBorrow", values: [string, string, boolean]): string;
    encodeFunctionData(functionFragment: "ionicAdmin", values?: undefined): string;
    encodeFunctionData(functionFragment: "ionicAdminHasRights", values?: undefined): string;
    encodeFunctionData(functionFragment: "isComptroller", values?: undefined): string;
    encodeFunctionData(functionFragment: "isDeprecated", values: [string]): string;
    encodeFunctionData(functionFragment: "liquidateBorrowAllowed", values: [string, string, string, string, BigNumberish]): string;
    encodeFunctionData(functionFragment: "liquidateCalculateSeizeTokens", values: [string, string, BigNumberish]): string;
    encodeFunctionData(functionFragment: "liquidationIncentiveMantissa", values?: undefined): string;
    encodeFunctionData(functionFragment: "markets", values: [string]): string;
    encodeFunctionData(functionFragment: "mintAllowed", values: [string, string, BigNumberish]): string;
    encodeFunctionData(functionFragment: "mintGuardianPaused", values: [string]): string;
    encodeFunctionData(functionFragment: "mintVerify", values: [string, string, BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "nonAccruingRewardsDistributors", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "oracle", values?: undefined): string;
    encodeFunctionData(functionFragment: "pauseGuardian", values?: undefined): string;
    encodeFunctionData(functionFragment: "pendingAdmin", values?: undefined): string;
    encodeFunctionData(functionFragment: "redeemAllowed", values: [string, string, BigNumberish]): string;
    encodeFunctionData(functionFragment: "redeemVerify", values: [string, string, BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "repayBorrowAllowed", values: [string, string, string, BigNumberish]): string;
    encodeFunctionData(functionFragment: "rewardsDistributors", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "seizeAllowed", values: [string, string, string, string, BigNumberish]): string;
    encodeFunctionData(functionFragment: "seizeGuardianPaused", values?: undefined): string;
    encodeFunctionData(functionFragment: "suppliers", values: [string]): string;
    encodeFunctionData(functionFragment: "supplyCaps", values: [string]): string;
    encodeFunctionData(functionFragment: "transferAllowed", values: [string, string, string, BigNumberish]): string;
    encodeFunctionData(functionFragment: "transferGuardianPaused", values?: undefined): string;
    encodeFunctionData(functionFragment: "whitelist", values: [string]): string;
    encodeFunctionData(functionFragment: "whitelistArray", values: [BigNumberish]): string;
    decodeFunctionResult(functionFragment: "_addRewardsDistributor", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_afterNonReentrant", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_becomeImplementation", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_beforeNonReentrant", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_borrowGuardianPaused", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_deployMarket", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_getExtensionFunctions", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_mintGuardianPaused", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_setCloseFactor", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_setCollateralFactor", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_setLiquidationIncentive", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_setPriceOracle", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_setWhitelistEnforcement", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_setWhitelistStatuses", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "accountAssets", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "admin", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "adminHasRights", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "allBorrowers", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "allMarkets", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "borrowAllowed", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "borrowCapForCollateral", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "borrowCapGuardian", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "borrowCaps", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "borrowGuardianPaused", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "borrowWithinLimits", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "borrowingAgainstCollateralBlacklist", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "cTokensByUnderlying", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "checkMembership", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "closeFactorMantissa", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "enforceWhitelist", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "enterMarkets", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "exitMarket", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getAccountLiquidity", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getAssetsIn", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getHypotheticalAccountLiquidity", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getMaxRedeemOrBorrow", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "ionicAdmin", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "ionicAdminHasRights", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "isComptroller", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "isDeprecated", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "liquidateBorrowAllowed", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "liquidateCalculateSeizeTokens", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "liquidationIncentiveMantissa", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "markets", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "mintAllowed", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "mintGuardianPaused", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "mintVerify", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "nonAccruingRewardsDistributors", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "oracle", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "pauseGuardian", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "pendingAdmin", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "redeemAllowed", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "redeemVerify", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "repayBorrowAllowed", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "rewardsDistributors", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "seizeAllowed", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "seizeGuardianPaused", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "suppliers", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "supplyCaps", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "transferAllowed", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "transferGuardianPaused", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "whitelist", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "whitelistArray", data: BytesLike): Result;
    events: {
        "AddedRewardsDistributor(address)": EventFragment;
        "Failure(uint256,uint256,uint256)": EventFragment;
        "MarketEntered(address,address)": EventFragment;
        "MarketExited(address,address)": EventFragment;
        "MarketListed(address)": EventFragment;
        "NewCloseFactor(uint256,uint256)": EventFragment;
        "NewCollateralFactor(address,uint256,uint256)": EventFragment;
        "NewLiquidationIncentive(uint256,uint256)": EventFragment;
        "NewPriceOracle(address,address)": EventFragment;
        "WhitelistEnforcementChanged(bool)": EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: "AddedRewardsDistributor"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "Failure"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "MarketEntered"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "MarketExited"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "MarketListed"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "NewCloseFactor"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "NewCollateralFactor"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "NewLiquidationIncentive"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "NewPriceOracle"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "WhitelistEnforcementChanged"): EventFragment;
}
export interface AddedRewardsDistributorEventObject {
    rewardsDistributor: string;
}
export type AddedRewardsDistributorEvent = TypedEvent<[
    string
], AddedRewardsDistributorEventObject>;
export type AddedRewardsDistributorEventFilter = TypedEventFilter<AddedRewardsDistributorEvent>;
export interface FailureEventObject {
    error: BigNumber;
    info: BigNumber;
    detail: BigNumber;
}
export type FailureEvent = TypedEvent<[
    BigNumber,
    BigNumber,
    BigNumber
], FailureEventObject>;
export type FailureEventFilter = TypedEventFilter<FailureEvent>;
export interface MarketEnteredEventObject {
    cToken: string;
    account: string;
}
export type MarketEnteredEvent = TypedEvent<[
    string,
    string
], MarketEnteredEventObject>;
export type MarketEnteredEventFilter = TypedEventFilter<MarketEnteredEvent>;
export interface MarketExitedEventObject {
    cToken: string;
    account: string;
}
export type MarketExitedEvent = TypedEvent<[
    string,
    string
], MarketExitedEventObject>;
export type MarketExitedEventFilter = TypedEventFilter<MarketExitedEvent>;
export interface MarketListedEventObject {
    cToken: string;
}
export type MarketListedEvent = TypedEvent<[string], MarketListedEventObject>;
export type MarketListedEventFilter = TypedEventFilter<MarketListedEvent>;
export interface NewCloseFactorEventObject {
    oldCloseFactorMantissa: BigNumber;
    newCloseFactorMantissa: BigNumber;
}
export type NewCloseFactorEvent = TypedEvent<[
    BigNumber,
    BigNumber
], NewCloseFactorEventObject>;
export type NewCloseFactorEventFilter = TypedEventFilter<NewCloseFactorEvent>;
export interface NewCollateralFactorEventObject {
    cToken: string;
    oldCollateralFactorMantissa: BigNumber;
    newCollateralFactorMantissa: BigNumber;
}
export type NewCollateralFactorEvent = TypedEvent<[
    string,
    BigNumber,
    BigNumber
], NewCollateralFactorEventObject>;
export type NewCollateralFactorEventFilter = TypedEventFilter<NewCollateralFactorEvent>;
export interface NewLiquidationIncentiveEventObject {
    oldLiquidationIncentiveMantissa: BigNumber;
    newLiquidationIncentiveMantissa: BigNumber;
}
export type NewLiquidationIncentiveEvent = TypedEvent<[
    BigNumber,
    BigNumber
], NewLiquidationIncentiveEventObject>;
export type NewLiquidationIncentiveEventFilter = TypedEventFilter<NewLiquidationIncentiveEvent>;
export interface NewPriceOracleEventObject {
    oldPriceOracle: string;
    newPriceOracle: string;
}
export type NewPriceOracleEvent = TypedEvent<[
    string,
    string
], NewPriceOracleEventObject>;
export type NewPriceOracleEventFilter = TypedEventFilter<NewPriceOracleEvent>;
export interface WhitelistEnforcementChangedEventObject {
    enforce: boolean;
}
export type WhitelistEnforcementChangedEvent = TypedEvent<[
    boolean
], WhitelistEnforcementChangedEventObject>;
export type WhitelistEnforcementChangedEventFilter = TypedEventFilter<WhitelistEnforcementChangedEvent>;
export interface Comptroller extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: ComptrollerInterface;
    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: {
        _addRewardsDistributor(distributor: string, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        _afterNonReentrant(overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        _becomeImplementation(overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        _beforeNonReentrant(overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        _borrowGuardianPaused(overrides?: CallOverrides): Promise<[boolean]>;
        _deployMarket(delegateType: BigNumberish, constructorData: BytesLike, becomeImplData: BytesLike, collateralFactorMantissa: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        _getExtensionFunctions(overrides?: CallOverrides): Promise<[string[]] & {
            functionSelectors: string[];
        }>;
        _mintGuardianPaused(overrides?: CallOverrides): Promise<[boolean]>;
        _setCloseFactor(newCloseFactorMantissa: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        _setCollateralFactor(cToken: string, newCollateralFactorMantissa: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        _setLiquidationIncentive(newLiquidationIncentiveMantissa: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        _setPriceOracle(newOracle: string, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        _setWhitelistEnforcement(enforce: boolean, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        _setWhitelistStatuses(suppliers: string[], statuses: boolean[], overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        accountAssets(arg0: string, arg1: BigNumberish, overrides?: CallOverrides): Promise<[string]>;
        admin(overrides?: CallOverrides): Promise<[string]>;
        adminHasRights(overrides?: CallOverrides): Promise<[boolean]>;
        allBorrowers(arg0: BigNumberish, overrides?: CallOverrides): Promise<[string]>;
        allMarkets(arg0: BigNumberish, overrides?: CallOverrides): Promise<[string]>;
        borrowAllowed(cToken: string, borrower: string, borrowAmount: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        borrowCapForCollateral(arg0: string, arg1: string, overrides?: CallOverrides): Promise<[BigNumber]>;
        borrowCapGuardian(overrides?: CallOverrides): Promise<[string]>;
        borrowCaps(arg0: string, overrides?: CallOverrides): Promise<[BigNumber]>;
        borrowGuardianPaused(arg0: string, overrides?: CallOverrides): Promise<[boolean]>;
        borrowWithinLimits(cToken: string, accountBorrowsNew: BigNumberish, overrides?: CallOverrides): Promise<[BigNumber]>;
        borrowingAgainstCollateralBlacklist(arg0: string, arg1: string, overrides?: CallOverrides): Promise<[boolean]>;
        cTokensByUnderlying(arg0: string, overrides?: CallOverrides): Promise<[string]>;
        checkMembership(account: string, cToken: string, overrides?: CallOverrides): Promise<[boolean]>;
        closeFactorMantissa(overrides?: CallOverrides): Promise<[BigNumber]>;
        enforceWhitelist(overrides?: CallOverrides): Promise<[boolean]>;
        enterMarkets(cTokens: string[], overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        exitMarket(cTokenAddress: string, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        getAccountLiquidity(account: string, overrides?: CallOverrides): Promise<[BigNumber, BigNumber, BigNumber, BigNumber]>;
        getAssetsIn(account: string, overrides?: CallOverrides): Promise<[string[]]>;
        getHypotheticalAccountLiquidity(account: string, cTokenModify: string, redeemTokens: BigNumberish, borrowAmount: BigNumberish, overrides?: CallOverrides): Promise<[BigNumber, BigNumber, BigNumber, BigNumber]>;
        getMaxRedeemOrBorrow(account: string, cTokenModify: string, isBorrow: boolean, overrides?: CallOverrides): Promise<[BigNumber]>;
        ionicAdmin(overrides?: CallOverrides): Promise<[string]>;
        ionicAdminHasRights(overrides?: CallOverrides): Promise<[boolean]>;
        isComptroller(overrides?: CallOverrides): Promise<[boolean]>;
        isDeprecated(cToken: string, overrides?: CallOverrides): Promise<[boolean]>;
        liquidateBorrowAllowed(cTokenBorrowed: string, cTokenCollateral: string, liquidator: string, borrower: string, repayAmount: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        liquidateCalculateSeizeTokens(cTokenBorrowed: string, cTokenCollateral: string, actualRepayAmount: BigNumberish, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>;
        liquidationIncentiveMantissa(overrides?: CallOverrides): Promise<[BigNumber]>;
        markets(arg0: string, overrides?: CallOverrides): Promise<[
            boolean,
            BigNumber
        ] & {
            isListed: boolean;
            collateralFactorMantissa: BigNumber;
        }>;
        mintAllowed(cTokenAddress: string, minter: string, mintAmount: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        mintGuardianPaused(arg0: string, overrides?: CallOverrides): Promise<[boolean]>;
        mintVerify(cToken: string, minter: string, actualMintAmount: BigNumberish, mintTokens: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        nonAccruingRewardsDistributors(arg0: BigNumberish, overrides?: CallOverrides): Promise<[string]>;
        oracle(overrides?: CallOverrides): Promise<[string]>;
        pauseGuardian(overrides?: CallOverrides): Promise<[string]>;
        pendingAdmin(overrides?: CallOverrides): Promise<[string]>;
        redeemAllowed(cToken: string, redeemer: string, redeemTokens: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        redeemVerify(cToken: string, redeemer: string, redeemAmount: BigNumberish, redeemTokens: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        repayBorrowAllowed(cToken: string, payer: string, borrower: string, repayAmount: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        rewardsDistributors(arg0: BigNumberish, overrides?: CallOverrides): Promise<[string]>;
        seizeAllowed(cTokenCollateral: string, cTokenBorrowed: string, liquidator: string, borrower: string, seizeTokens: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        seizeGuardianPaused(overrides?: CallOverrides): Promise<[boolean]>;
        suppliers(arg0: string, overrides?: CallOverrides): Promise<[boolean]>;
        supplyCaps(arg0: string, overrides?: CallOverrides): Promise<[BigNumber]>;
        transferAllowed(cToken: string, src: string, dst: string, transferTokens: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        transferGuardianPaused(overrides?: CallOverrides): Promise<[boolean]>;
        whitelist(arg0: string, overrides?: CallOverrides): Promise<[boolean]>;
        whitelistArray(arg0: BigNumberish, overrides?: CallOverrides): Promise<[string]>;
    };
    _addRewardsDistributor(distributor: string, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    _afterNonReentrant(overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    _becomeImplementation(overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    _beforeNonReentrant(overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    _borrowGuardianPaused(overrides?: CallOverrides): Promise<boolean>;
    _deployMarket(delegateType: BigNumberish, constructorData: BytesLike, becomeImplData: BytesLike, collateralFactorMantissa: BigNumberish, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    _getExtensionFunctions(overrides?: CallOverrides): Promise<string[]>;
    _mintGuardianPaused(overrides?: CallOverrides): Promise<boolean>;
    _setCloseFactor(newCloseFactorMantissa: BigNumberish, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    _setCollateralFactor(cToken: string, newCollateralFactorMantissa: BigNumberish, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    _setLiquidationIncentive(newLiquidationIncentiveMantissa: BigNumberish, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    _setPriceOracle(newOracle: string, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    _setWhitelistEnforcement(enforce: boolean, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    _setWhitelistStatuses(suppliers: string[], statuses: boolean[], overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    accountAssets(arg0: string, arg1: BigNumberish, overrides?: CallOverrides): Promise<string>;
    admin(overrides?: CallOverrides): Promise<string>;
    adminHasRights(overrides?: CallOverrides): Promise<boolean>;
    allBorrowers(arg0: BigNumberish, overrides?: CallOverrides): Promise<string>;
    allMarkets(arg0: BigNumberish, overrides?: CallOverrides): Promise<string>;
    borrowAllowed(cToken: string, borrower: string, borrowAmount: BigNumberish, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    borrowCapForCollateral(arg0: string, arg1: string, overrides?: CallOverrides): Promise<BigNumber>;
    borrowCapGuardian(overrides?: CallOverrides): Promise<string>;
    borrowCaps(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
    borrowGuardianPaused(arg0: string, overrides?: CallOverrides): Promise<boolean>;
    borrowWithinLimits(cToken: string, accountBorrowsNew: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
    borrowingAgainstCollateralBlacklist(arg0: string, arg1: string, overrides?: CallOverrides): Promise<boolean>;
    cTokensByUnderlying(arg0: string, overrides?: CallOverrides): Promise<string>;
    checkMembership(account: string, cToken: string, overrides?: CallOverrides): Promise<boolean>;
    closeFactorMantissa(overrides?: CallOverrides): Promise<BigNumber>;
    enforceWhitelist(overrides?: CallOverrides): Promise<boolean>;
    enterMarkets(cTokens: string[], overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    exitMarket(cTokenAddress: string, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    getAccountLiquidity(account: string, overrides?: CallOverrides): Promise<[BigNumber, BigNumber, BigNumber, BigNumber]>;
    getAssetsIn(account: string, overrides?: CallOverrides): Promise<string[]>;
    getHypotheticalAccountLiquidity(account: string, cTokenModify: string, redeemTokens: BigNumberish, borrowAmount: BigNumberish, overrides?: CallOverrides): Promise<[BigNumber, BigNumber, BigNumber, BigNumber]>;
    getMaxRedeemOrBorrow(account: string, cTokenModify: string, isBorrow: boolean, overrides?: CallOverrides): Promise<BigNumber>;
    ionicAdmin(overrides?: CallOverrides): Promise<string>;
    ionicAdminHasRights(overrides?: CallOverrides): Promise<boolean>;
    isComptroller(overrides?: CallOverrides): Promise<boolean>;
    isDeprecated(cToken: string, overrides?: CallOverrides): Promise<boolean>;
    liquidateBorrowAllowed(cTokenBorrowed: string, cTokenCollateral: string, liquidator: string, borrower: string, repayAmount: BigNumberish, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    liquidateCalculateSeizeTokens(cTokenBorrowed: string, cTokenCollateral: string, actualRepayAmount: BigNumberish, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>;
    liquidationIncentiveMantissa(overrides?: CallOverrides): Promise<BigNumber>;
    markets(arg0: string, overrides?: CallOverrides): Promise<[
        boolean,
        BigNumber
    ] & {
        isListed: boolean;
        collateralFactorMantissa: BigNumber;
    }>;
    mintAllowed(cTokenAddress: string, minter: string, mintAmount: BigNumberish, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    mintGuardianPaused(arg0: string, overrides?: CallOverrides): Promise<boolean>;
    mintVerify(cToken: string, minter: string, actualMintAmount: BigNumberish, mintTokens: BigNumberish, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    nonAccruingRewardsDistributors(arg0: BigNumberish, overrides?: CallOverrides): Promise<string>;
    oracle(overrides?: CallOverrides): Promise<string>;
    pauseGuardian(overrides?: CallOverrides): Promise<string>;
    pendingAdmin(overrides?: CallOverrides): Promise<string>;
    redeemAllowed(cToken: string, redeemer: string, redeemTokens: BigNumberish, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    redeemVerify(cToken: string, redeemer: string, redeemAmount: BigNumberish, redeemTokens: BigNumberish, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    repayBorrowAllowed(cToken: string, payer: string, borrower: string, repayAmount: BigNumberish, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    rewardsDistributors(arg0: BigNumberish, overrides?: CallOverrides): Promise<string>;
    seizeAllowed(cTokenCollateral: string, cTokenBorrowed: string, liquidator: string, borrower: string, seizeTokens: BigNumberish, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    seizeGuardianPaused(overrides?: CallOverrides): Promise<boolean>;
    suppliers(arg0: string, overrides?: CallOverrides): Promise<boolean>;
    supplyCaps(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
    transferAllowed(cToken: string, src: string, dst: string, transferTokens: BigNumberish, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    transferGuardianPaused(overrides?: CallOverrides): Promise<boolean>;
    whitelist(arg0: string, overrides?: CallOverrides): Promise<boolean>;
    whitelistArray(arg0: BigNumberish, overrides?: CallOverrides): Promise<string>;
    callStatic: {
        _addRewardsDistributor(distributor: string, overrides?: CallOverrides): Promise<BigNumber>;
        _afterNonReentrant(overrides?: CallOverrides): Promise<void>;
        _becomeImplementation(overrides?: CallOverrides): Promise<void>;
        _beforeNonReentrant(overrides?: CallOverrides): Promise<void>;
        _borrowGuardianPaused(overrides?: CallOverrides): Promise<boolean>;
        _deployMarket(delegateType: BigNumberish, constructorData: BytesLike, becomeImplData: BytesLike, collateralFactorMantissa: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        _getExtensionFunctions(overrides?: CallOverrides): Promise<string[]>;
        _mintGuardianPaused(overrides?: CallOverrides): Promise<boolean>;
        _setCloseFactor(newCloseFactorMantissa: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        _setCollateralFactor(cToken: string, newCollateralFactorMantissa: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        _setLiquidationIncentive(newLiquidationIncentiveMantissa: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        _setPriceOracle(newOracle: string, overrides?: CallOverrides): Promise<BigNumber>;
        _setWhitelistEnforcement(enforce: boolean, overrides?: CallOverrides): Promise<BigNumber>;
        _setWhitelistStatuses(suppliers: string[], statuses: boolean[], overrides?: CallOverrides): Promise<BigNumber>;
        accountAssets(arg0: string, arg1: BigNumberish, overrides?: CallOverrides): Promise<string>;
        admin(overrides?: CallOverrides): Promise<string>;
        adminHasRights(overrides?: CallOverrides): Promise<boolean>;
        allBorrowers(arg0: BigNumberish, overrides?: CallOverrides): Promise<string>;
        allMarkets(arg0: BigNumberish, overrides?: CallOverrides): Promise<string>;
        borrowAllowed(cToken: string, borrower: string, borrowAmount: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        borrowCapForCollateral(arg0: string, arg1: string, overrides?: CallOverrides): Promise<BigNumber>;
        borrowCapGuardian(overrides?: CallOverrides): Promise<string>;
        borrowCaps(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
        borrowGuardianPaused(arg0: string, overrides?: CallOverrides): Promise<boolean>;
        borrowWithinLimits(cToken: string, accountBorrowsNew: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        borrowingAgainstCollateralBlacklist(arg0: string, arg1: string, overrides?: CallOverrides): Promise<boolean>;
        cTokensByUnderlying(arg0: string, overrides?: CallOverrides): Promise<string>;
        checkMembership(account: string, cToken: string, overrides?: CallOverrides): Promise<boolean>;
        closeFactorMantissa(overrides?: CallOverrides): Promise<BigNumber>;
        enforceWhitelist(overrides?: CallOverrides): Promise<boolean>;
        enterMarkets(cTokens: string[], overrides?: CallOverrides): Promise<BigNumber[]>;
        exitMarket(cTokenAddress: string, overrides?: CallOverrides): Promise<BigNumber>;
        getAccountLiquidity(account: string, overrides?: CallOverrides): Promise<[BigNumber, BigNumber, BigNumber, BigNumber]>;
        getAssetsIn(account: string, overrides?: CallOverrides): Promise<string[]>;
        getHypotheticalAccountLiquidity(account: string, cTokenModify: string, redeemTokens: BigNumberish, borrowAmount: BigNumberish, overrides?: CallOverrides): Promise<[BigNumber, BigNumber, BigNumber, BigNumber]>;
        getMaxRedeemOrBorrow(account: string, cTokenModify: string, isBorrow: boolean, overrides?: CallOverrides): Promise<BigNumber>;
        ionicAdmin(overrides?: CallOverrides): Promise<string>;
        ionicAdminHasRights(overrides?: CallOverrides): Promise<boolean>;
        isComptroller(overrides?: CallOverrides): Promise<boolean>;
        isDeprecated(cToken: string, overrides?: CallOverrides): Promise<boolean>;
        liquidateBorrowAllowed(cTokenBorrowed: string, cTokenCollateral: string, liquidator: string, borrower: string, repayAmount: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        liquidateCalculateSeizeTokens(cTokenBorrowed: string, cTokenCollateral: string, actualRepayAmount: BigNumberish, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>;
        liquidationIncentiveMantissa(overrides?: CallOverrides): Promise<BigNumber>;
        markets(arg0: string, overrides?: CallOverrides): Promise<[
            boolean,
            BigNumber
        ] & {
            isListed: boolean;
            collateralFactorMantissa: BigNumber;
        }>;
        mintAllowed(cTokenAddress: string, minter: string, mintAmount: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        mintGuardianPaused(arg0: string, overrides?: CallOverrides): Promise<boolean>;
        mintVerify(cToken: string, minter: string, actualMintAmount: BigNumberish, mintTokens: BigNumberish, overrides?: CallOverrides): Promise<void>;
        nonAccruingRewardsDistributors(arg0: BigNumberish, overrides?: CallOverrides): Promise<string>;
        oracle(overrides?: CallOverrides): Promise<string>;
        pauseGuardian(overrides?: CallOverrides): Promise<string>;
        pendingAdmin(overrides?: CallOverrides): Promise<string>;
        redeemAllowed(cToken: string, redeemer: string, redeemTokens: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        redeemVerify(cToken: string, redeemer: string, redeemAmount: BigNumberish, redeemTokens: BigNumberish, overrides?: CallOverrides): Promise<void>;
        repayBorrowAllowed(cToken: string, payer: string, borrower: string, repayAmount: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        rewardsDistributors(arg0: BigNumberish, overrides?: CallOverrides): Promise<string>;
        seizeAllowed(cTokenCollateral: string, cTokenBorrowed: string, liquidator: string, borrower: string, seizeTokens: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        seizeGuardianPaused(overrides?: CallOverrides): Promise<boolean>;
        suppliers(arg0: string, overrides?: CallOverrides): Promise<boolean>;
        supplyCaps(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
        transferAllowed(cToken: string, src: string, dst: string, transferTokens: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        transferGuardianPaused(overrides?: CallOverrides): Promise<boolean>;
        whitelist(arg0: string, overrides?: CallOverrides): Promise<boolean>;
        whitelistArray(arg0: BigNumberish, overrides?: CallOverrides): Promise<string>;
    };
    filters: {
        "AddedRewardsDistributor(address)"(rewardsDistributor?: null): AddedRewardsDistributorEventFilter;
        AddedRewardsDistributor(rewardsDistributor?: null): AddedRewardsDistributorEventFilter;
        "Failure(uint256,uint256,uint256)"(error?: null, info?: null, detail?: null): FailureEventFilter;
        Failure(error?: null, info?: null, detail?: null): FailureEventFilter;
        "MarketEntered(address,address)"(cToken?: null, account?: null): MarketEnteredEventFilter;
        MarketEntered(cToken?: null, account?: null): MarketEnteredEventFilter;
        "MarketExited(address,address)"(cToken?: null, account?: null): MarketExitedEventFilter;
        MarketExited(cToken?: null, account?: null): MarketExitedEventFilter;
        "MarketListed(address)"(cToken?: null): MarketListedEventFilter;
        MarketListed(cToken?: null): MarketListedEventFilter;
        "NewCloseFactor(uint256,uint256)"(oldCloseFactorMantissa?: null, newCloseFactorMantissa?: null): NewCloseFactorEventFilter;
        NewCloseFactor(oldCloseFactorMantissa?: null, newCloseFactorMantissa?: null): NewCloseFactorEventFilter;
        "NewCollateralFactor(address,uint256,uint256)"(cToken?: null, oldCollateralFactorMantissa?: null, newCollateralFactorMantissa?: null): NewCollateralFactorEventFilter;
        NewCollateralFactor(cToken?: null, oldCollateralFactorMantissa?: null, newCollateralFactorMantissa?: null): NewCollateralFactorEventFilter;
        "NewLiquidationIncentive(uint256,uint256)"(oldLiquidationIncentiveMantissa?: null, newLiquidationIncentiveMantissa?: null): NewLiquidationIncentiveEventFilter;
        NewLiquidationIncentive(oldLiquidationIncentiveMantissa?: null, newLiquidationIncentiveMantissa?: null): NewLiquidationIncentiveEventFilter;
        "NewPriceOracle(address,address)"(oldPriceOracle?: null, newPriceOracle?: null): NewPriceOracleEventFilter;
        NewPriceOracle(oldPriceOracle?: null, newPriceOracle?: null): NewPriceOracleEventFilter;
        "WhitelistEnforcementChanged(bool)"(enforce?: null): WhitelistEnforcementChangedEventFilter;
        WhitelistEnforcementChanged(enforce?: null): WhitelistEnforcementChangedEventFilter;
    };
    estimateGas: {
        _addRewardsDistributor(distributor: string, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        _afterNonReentrant(overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        _becomeImplementation(overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        _beforeNonReentrant(overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        _borrowGuardianPaused(overrides?: CallOverrides): Promise<BigNumber>;
        _deployMarket(delegateType: BigNumberish, constructorData: BytesLike, becomeImplData: BytesLike, collateralFactorMantissa: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        _getExtensionFunctions(overrides?: CallOverrides): Promise<BigNumber>;
        _mintGuardianPaused(overrides?: CallOverrides): Promise<BigNumber>;
        _setCloseFactor(newCloseFactorMantissa: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        _setCollateralFactor(cToken: string, newCollateralFactorMantissa: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        _setLiquidationIncentive(newLiquidationIncentiveMantissa: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        _setPriceOracle(newOracle: string, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        _setWhitelistEnforcement(enforce: boolean, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        _setWhitelistStatuses(suppliers: string[], statuses: boolean[], overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        accountAssets(arg0: string, arg1: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        admin(overrides?: CallOverrides): Promise<BigNumber>;
        adminHasRights(overrides?: CallOverrides): Promise<BigNumber>;
        allBorrowers(arg0: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        allMarkets(arg0: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        borrowAllowed(cToken: string, borrower: string, borrowAmount: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        borrowCapForCollateral(arg0: string, arg1: string, overrides?: CallOverrides): Promise<BigNumber>;
        borrowCapGuardian(overrides?: CallOverrides): Promise<BigNumber>;
        borrowCaps(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
        borrowGuardianPaused(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
        borrowWithinLimits(cToken: string, accountBorrowsNew: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        borrowingAgainstCollateralBlacklist(arg0: string, arg1: string, overrides?: CallOverrides): Promise<BigNumber>;
        cTokensByUnderlying(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
        checkMembership(account: string, cToken: string, overrides?: CallOverrides): Promise<BigNumber>;
        closeFactorMantissa(overrides?: CallOverrides): Promise<BigNumber>;
        enforceWhitelist(overrides?: CallOverrides): Promise<BigNumber>;
        enterMarkets(cTokens: string[], overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        exitMarket(cTokenAddress: string, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        getAccountLiquidity(account: string, overrides?: CallOverrides): Promise<BigNumber>;
        getAssetsIn(account: string, overrides?: CallOverrides): Promise<BigNumber>;
        getHypotheticalAccountLiquidity(account: string, cTokenModify: string, redeemTokens: BigNumberish, borrowAmount: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        getMaxRedeemOrBorrow(account: string, cTokenModify: string, isBorrow: boolean, overrides?: CallOverrides): Promise<BigNumber>;
        ionicAdmin(overrides?: CallOverrides): Promise<BigNumber>;
        ionicAdminHasRights(overrides?: CallOverrides): Promise<BigNumber>;
        isComptroller(overrides?: CallOverrides): Promise<BigNumber>;
        isDeprecated(cToken: string, overrides?: CallOverrides): Promise<BigNumber>;
        liquidateBorrowAllowed(cTokenBorrowed: string, cTokenCollateral: string, liquidator: string, borrower: string, repayAmount: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        liquidateCalculateSeizeTokens(cTokenBorrowed: string, cTokenCollateral: string, actualRepayAmount: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        liquidationIncentiveMantissa(overrides?: CallOverrides): Promise<BigNumber>;
        markets(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
        mintAllowed(cTokenAddress: string, minter: string, mintAmount: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        mintGuardianPaused(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
        mintVerify(cToken: string, minter: string, actualMintAmount: BigNumberish, mintTokens: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        nonAccruingRewardsDistributors(arg0: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        oracle(overrides?: CallOverrides): Promise<BigNumber>;
        pauseGuardian(overrides?: CallOverrides): Promise<BigNumber>;
        pendingAdmin(overrides?: CallOverrides): Promise<BigNumber>;
        redeemAllowed(cToken: string, redeemer: string, redeemTokens: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        redeemVerify(cToken: string, redeemer: string, redeemAmount: BigNumberish, redeemTokens: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        repayBorrowAllowed(cToken: string, payer: string, borrower: string, repayAmount: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        rewardsDistributors(arg0: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        seizeAllowed(cTokenCollateral: string, cTokenBorrowed: string, liquidator: string, borrower: string, seizeTokens: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        seizeGuardianPaused(overrides?: CallOverrides): Promise<BigNumber>;
        suppliers(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
        supplyCaps(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
        transferAllowed(cToken: string, src: string, dst: string, transferTokens: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        transferGuardianPaused(overrides?: CallOverrides): Promise<BigNumber>;
        whitelist(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
        whitelistArray(arg0: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
    };
    populateTransaction: {
        _addRewardsDistributor(distributor: string, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        _afterNonReentrant(overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        _becomeImplementation(overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        _beforeNonReentrant(overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        _borrowGuardianPaused(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        _deployMarket(delegateType: BigNumberish, constructorData: BytesLike, becomeImplData: BytesLike, collateralFactorMantissa: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        _getExtensionFunctions(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        _mintGuardianPaused(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        _setCloseFactor(newCloseFactorMantissa: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        _setCollateralFactor(cToken: string, newCollateralFactorMantissa: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        _setLiquidationIncentive(newLiquidationIncentiveMantissa: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        _setPriceOracle(newOracle: string, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        _setWhitelistEnforcement(enforce: boolean, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        _setWhitelistStatuses(suppliers: string[], statuses: boolean[], overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        accountAssets(arg0: string, arg1: BigNumberish, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        admin(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        adminHasRights(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        allBorrowers(arg0: BigNumberish, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        allMarkets(arg0: BigNumberish, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        borrowAllowed(cToken: string, borrower: string, borrowAmount: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        borrowCapForCollateral(arg0: string, arg1: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        borrowCapGuardian(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        borrowCaps(arg0: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        borrowGuardianPaused(arg0: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        borrowWithinLimits(cToken: string, accountBorrowsNew: BigNumberish, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        borrowingAgainstCollateralBlacklist(arg0: string, arg1: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        cTokensByUnderlying(arg0: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        checkMembership(account: string, cToken: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        closeFactorMantissa(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        enforceWhitelist(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        enterMarkets(cTokens: string[], overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        exitMarket(cTokenAddress: string, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        getAccountLiquidity(account: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getAssetsIn(account: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getHypotheticalAccountLiquidity(account: string, cTokenModify: string, redeemTokens: BigNumberish, borrowAmount: BigNumberish, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getMaxRedeemOrBorrow(account: string, cTokenModify: string, isBorrow: boolean, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        ionicAdmin(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        ionicAdminHasRights(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isComptroller(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isDeprecated(cToken: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        liquidateBorrowAllowed(cTokenBorrowed: string, cTokenCollateral: string, liquidator: string, borrower: string, repayAmount: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        liquidateCalculateSeizeTokens(cTokenBorrowed: string, cTokenCollateral: string, actualRepayAmount: BigNumberish, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        liquidationIncentiveMantissa(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        markets(arg0: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        mintAllowed(cTokenAddress: string, minter: string, mintAmount: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        mintGuardianPaused(arg0: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        mintVerify(cToken: string, minter: string, actualMintAmount: BigNumberish, mintTokens: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        nonAccruingRewardsDistributors(arg0: BigNumberish, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        oracle(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pauseGuardian(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pendingAdmin(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        redeemAllowed(cToken: string, redeemer: string, redeemTokens: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        redeemVerify(cToken: string, redeemer: string, redeemAmount: BigNumberish, redeemTokens: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        repayBorrowAllowed(cToken: string, payer: string, borrower: string, repayAmount: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        rewardsDistributors(arg0: BigNumberish, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        seizeAllowed(cTokenCollateral: string, cTokenBorrowed: string, liquidator: string, borrower: string, seizeTokens: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        seizeGuardianPaused(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        suppliers(arg0: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        supplyCaps(arg0: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        transferAllowed(cToken: string, src: string, dst: string, transferTokens: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        transferGuardianPaused(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        whitelist(arg0: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        whitelistArray(arg0: BigNumberish, overrides?: CallOverrides): Promise<PopulatedTransaction>;
    };
}
