/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */

import {
  ethers,
  EventFilter,
  Signer,
  BigNumber,
  BigNumberish,
  PopulatedTransaction,
} from "ethers";
import {
  Contract,
  ContractTransaction,
  Overrides,
  CallOverrides,
} from "@ethersproject/contracts";
import { BytesLike } from "@ethersproject/bytes";
import { Listener, Provider } from "@ethersproject/providers";
import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi";

interface IManagedMarketAccessControllerInterface
  extends ethers.utils.Interface {
  functions: {
    "createProxy(address,address,bytes)": FunctionFragment;
    "createProxyByName(address,string,bytes)": FunctionFragment;
    "getAddress(uint256)": FunctionFragment;
    "getImplementation(string)": FunctionFragment;
    "getLendingPool()": FunctionFragment;
    "getLendingPoolCollateralManager()": FunctionFragment;
    "getLendingPoolConfigurator()": FunctionFragment;
    "getLendingRateOracle()": FunctionFragment;
    "getMarketId()": FunctionFragment;
    "getPoolAdmin()": FunctionFragment;
    "getPriceOracle()": FunctionFragment;
    "getRewardConfigurator()": FunctionFragment;
    "getRewardController()": FunctionFragment;
    "getRewardStakeToken()": FunctionFragment;
    "getRewardToken()": FunctionFragment;
    "getTreasury()": FunctionFragment;
    "isEmergencyAdmin(address)": FunctionFragment;
    "isPoolAdmin(address)": FunctionFragment;
    "queryAccessControlMask(address,uint256)": FunctionFragment;
    "setLendingPoolCollateralManager(address)": FunctionFragment;
    "setLendingPoolConfiguratorImpl(address)": FunctionFragment;
    "setLendingPoolImpl(address)": FunctionFragment;
    "setLendingRateOracle(address)": FunctionFragment;
    "setMarketId(string)": FunctionFragment;
    "setPoolAdmin(address)": FunctionFragment;
    "setPriceOracle(address)": FunctionFragment;
    "setRewardConfiguratorImpl(address)": FunctionFragment;
    "setRewardController(address)": FunctionFragment;
    "setRewardStakeTokenImpl(address)": FunctionFragment;
    "setRewardTokenImpl(address)": FunctionFragment;
    "setTreasuryImpl(address)": FunctionFragment;
  };

  encodeFunctionData(
    functionFragment: "createProxy",
    values: [string, string, BytesLike]
  ): string;
  encodeFunctionData(
    functionFragment: "createProxyByName",
    values: [string, string, BytesLike]
  ): string;
  encodeFunctionData(
    functionFragment: "getAddress",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "getImplementation",
    values: [string]
  ): string;
  encodeFunctionData(
    functionFragment: "getLendingPool",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getLendingPoolCollateralManager",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getLendingPoolConfigurator",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getLendingRateOracle",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getMarketId",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getPoolAdmin",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getPriceOracle",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getRewardConfigurator",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getRewardController",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getRewardStakeToken",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getRewardToken",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "getTreasury",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "isEmergencyAdmin",
    values: [string]
  ): string;
  encodeFunctionData(functionFragment: "isPoolAdmin", values: [string]): string;
  encodeFunctionData(
    functionFragment: "queryAccessControlMask",
    values: [string, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "setLendingPoolCollateralManager",
    values: [string]
  ): string;
  encodeFunctionData(
    functionFragment: "setLendingPoolConfiguratorImpl",
    values: [string]
  ): string;
  encodeFunctionData(
    functionFragment: "setLendingPoolImpl",
    values: [string]
  ): string;
  encodeFunctionData(
    functionFragment: "setLendingRateOracle",
    values: [string]
  ): string;
  encodeFunctionData(functionFragment: "setMarketId", values: [string]): string;
  encodeFunctionData(
    functionFragment: "setPoolAdmin",
    values: [string]
  ): string;
  encodeFunctionData(
    functionFragment: "setPriceOracle",
    values: [string]
  ): string;
  encodeFunctionData(
    functionFragment: "setRewardConfiguratorImpl",
    values: [string]
  ): string;
  encodeFunctionData(
    functionFragment: "setRewardController",
    values: [string]
  ): string;
  encodeFunctionData(
    functionFragment: "setRewardStakeTokenImpl",
    values: [string]
  ): string;
  encodeFunctionData(
    functionFragment: "setRewardTokenImpl",
    values: [string]
  ): string;
  encodeFunctionData(
    functionFragment: "setTreasuryImpl",
    values: [string]
  ): string;

  decodeFunctionResult(
    functionFragment: "createProxy",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "createProxyByName",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "getAddress", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "getImplementation",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getLendingPool",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getLendingPoolCollateralManager",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getLendingPoolConfigurator",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getLendingRateOracle",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getMarketId",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getPoolAdmin",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getPriceOracle",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getRewardConfigurator",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getRewardController",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getRewardStakeToken",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getRewardToken",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "getTreasury",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "isEmergencyAdmin",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "isPoolAdmin",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "queryAccessControlMask",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setLendingPoolCollateralManager",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setLendingPoolConfiguratorImpl",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setLendingPoolImpl",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setLendingRateOracle",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setMarketId",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setPoolAdmin",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setPriceOracle",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setRewardConfiguratorImpl",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setRewardController",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setRewardStakeTokenImpl",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setRewardTokenImpl",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setTreasuryImpl",
    data: BytesLike
  ): Result;

  events: {
    "MarketIdSet(string)": EventFragment;
  };

  getEvent(nameOrSignatureOrTopic: "MarketIdSet"): EventFragment;
}

export class IManagedMarketAccessController extends Contract {
  connect(signerOrProvider: Signer | Provider | string): this;
  attach(addressOrName: string): this;
  deployed(): Promise<this>;

  on(event: EventFilter | string, listener: Listener): this;
  once(event: EventFilter | string, listener: Listener): this;
  addListener(eventName: EventFilter | string, listener: Listener): this;
  removeAllListeners(eventName: EventFilter | string): this;
  removeListener(eventName: any, listener: Listener): this;

  interface: IManagedMarketAccessControllerInterface;

  functions: {
    createProxy(
      admin: string,
      impl: string,
      params: BytesLike,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    "createProxy(address,address,bytes)"(
      admin: string,
      impl: string,
      params: BytesLike,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    createProxyByName(
      admin: string,
      implName: string,
      params: BytesLike,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    "createProxyByName(address,string,bytes)"(
      admin: string,
      implName: string,
      params: BytesLike,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    getAddress(
      id: BigNumberish,
      overrides?: CallOverrides
    ): Promise<{
      0: string;
    }>;

    "getAddress(uint256)"(
      id: BigNumberish,
      overrides?: CallOverrides
    ): Promise<{
      0: string;
    }>;

    getImplementation(
      id: string,
      overrides?: CallOverrides
    ): Promise<{
      0: string;
    }>;

    "getImplementation(string)"(
      id: string,
      overrides?: CallOverrides
    ): Promise<{
      0: string;
    }>;

    getLendingPool(
      overrides?: CallOverrides
    ): Promise<{
      0: string;
    }>;

    "getLendingPool()"(
      overrides?: CallOverrides
    ): Promise<{
      0: string;
    }>;

    getLendingPoolCollateralManager(
      overrides?: CallOverrides
    ): Promise<{
      0: string;
    }>;

    "getLendingPoolCollateralManager()"(
      overrides?: CallOverrides
    ): Promise<{
      0: string;
    }>;

    getLendingPoolConfigurator(
      overrides?: CallOverrides
    ): Promise<{
      0: string;
    }>;

    "getLendingPoolConfigurator()"(
      overrides?: CallOverrides
    ): Promise<{
      0: string;
    }>;

    getLendingRateOracle(
      overrides?: CallOverrides
    ): Promise<{
      0: string;
    }>;

    "getLendingRateOracle()"(
      overrides?: CallOverrides
    ): Promise<{
      0: string;
    }>;

    getMarketId(
      overrides?: CallOverrides
    ): Promise<{
      0: string;
    }>;

    "getMarketId()"(
      overrides?: CallOverrides
    ): Promise<{
      0: string;
    }>;

    getPoolAdmin(
      overrides?: CallOverrides
    ): Promise<{
      0: string;
    }>;

    "getPoolAdmin()"(
      overrides?: CallOverrides
    ): Promise<{
      0: string;
    }>;

    getPriceOracle(
      overrides?: CallOverrides
    ): Promise<{
      0: string;
    }>;

    "getPriceOracle()"(
      overrides?: CallOverrides
    ): Promise<{
      0: string;
    }>;

    getRewardConfigurator(
      overrides?: CallOverrides
    ): Promise<{
      0: string;
    }>;

    "getRewardConfigurator()"(
      overrides?: CallOverrides
    ): Promise<{
      0: string;
    }>;

    getRewardController(
      overrides?: CallOverrides
    ): Promise<{
      0: string;
    }>;

    "getRewardController()"(
      overrides?: CallOverrides
    ): Promise<{
      0: string;
    }>;

    getRewardStakeToken(
      overrides?: CallOverrides
    ): Promise<{
      0: string;
    }>;

    "getRewardStakeToken()"(
      overrides?: CallOverrides
    ): Promise<{
      0: string;
    }>;

    getRewardToken(
      overrides?: CallOverrides
    ): Promise<{
      0: string;
    }>;

    "getRewardToken()"(
      overrides?: CallOverrides
    ): Promise<{
      0: string;
    }>;

    getTreasury(
      overrides?: CallOverrides
    ): Promise<{
      0: string;
    }>;

    "getTreasury()"(
      overrides?: CallOverrides
    ): Promise<{
      0: string;
    }>;

    isEmergencyAdmin(
      admin: string,
      overrides?: CallOverrides
    ): Promise<{
      0: boolean;
    }>;

    "isEmergencyAdmin(address)"(
      admin: string,
      overrides?: CallOverrides
    ): Promise<{
      0: boolean;
    }>;

    isPoolAdmin(
      arg0: string,
      overrides?: CallOverrides
    ): Promise<{
      0: boolean;
    }>;

    "isPoolAdmin(address)"(
      arg0: string,
      overrides?: CallOverrides
    ): Promise<{
      0: boolean;
    }>;

    queryAccessControlMask(
      addr: string,
      filterMask: BigNumberish,
      overrides?: CallOverrides
    ): Promise<{
      0: BigNumber;
    }>;

    "queryAccessControlMask(address,uint256)"(
      addr: string,
      filterMask: BigNumberish,
      overrides?: CallOverrides
    ): Promise<{
      0: BigNumber;
    }>;

    setLendingPoolCollateralManager(
      arg0: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    "setLendingPoolCollateralManager(address)"(
      arg0: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    setLendingPoolConfiguratorImpl(
      arg0: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    "setLendingPoolConfiguratorImpl(address)"(
      arg0: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    setLendingPoolImpl(
      arg0: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    "setLendingPoolImpl(address)"(
      arg0: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    setLendingRateOracle(
      arg0: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    "setLendingRateOracle(address)"(
      arg0: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    setMarketId(
      marketId: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    "setMarketId(string)"(
      marketId: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    setPoolAdmin(
      arg0: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    "setPoolAdmin(address)"(
      arg0: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    setPriceOracle(
      arg0: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    "setPriceOracle(address)"(
      arg0: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    setRewardConfiguratorImpl(
      arg0: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    "setRewardConfiguratorImpl(address)"(
      arg0: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    setRewardController(
      arg0: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    "setRewardController(address)"(
      arg0: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    setRewardStakeTokenImpl(
      arg0: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    "setRewardStakeTokenImpl(address)"(
      arg0: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    setRewardTokenImpl(
      arg0: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    "setRewardTokenImpl(address)"(
      arg0: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    setTreasuryImpl(
      arg0: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    "setTreasuryImpl(address)"(
      arg0: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;
  };

  createProxy(
    admin: string,
    impl: string,
    params: BytesLike,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  "createProxy(address,address,bytes)"(
    admin: string,
    impl: string,
    params: BytesLike,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  createProxyByName(
    admin: string,
    implName: string,
    params: BytesLike,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  "createProxyByName(address,string,bytes)"(
    admin: string,
    implName: string,
    params: BytesLike,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  getAddress(id: BigNumberish, overrides?: CallOverrides): Promise<string>;

  "getAddress(uint256)"(
    id: BigNumberish,
    overrides?: CallOverrides
  ): Promise<string>;

  getImplementation(id: string, overrides?: CallOverrides): Promise<string>;

  "getImplementation(string)"(
    id: string,
    overrides?: CallOverrides
  ): Promise<string>;

  getLendingPool(overrides?: CallOverrides): Promise<string>;

  "getLendingPool()"(overrides?: CallOverrides): Promise<string>;

  getLendingPoolCollateralManager(overrides?: CallOverrides): Promise<string>;

  "getLendingPoolCollateralManager()"(
    overrides?: CallOverrides
  ): Promise<string>;

  getLendingPoolConfigurator(overrides?: CallOverrides): Promise<string>;

  "getLendingPoolConfigurator()"(overrides?: CallOverrides): Promise<string>;

  getLendingRateOracle(overrides?: CallOverrides): Promise<string>;

  "getLendingRateOracle()"(overrides?: CallOverrides): Promise<string>;

  getMarketId(overrides?: CallOverrides): Promise<string>;

  "getMarketId()"(overrides?: CallOverrides): Promise<string>;

  getPoolAdmin(overrides?: CallOverrides): Promise<string>;

  "getPoolAdmin()"(overrides?: CallOverrides): Promise<string>;

  getPriceOracle(overrides?: CallOverrides): Promise<string>;

  "getPriceOracle()"(overrides?: CallOverrides): Promise<string>;

  getRewardConfigurator(overrides?: CallOverrides): Promise<string>;

  "getRewardConfigurator()"(overrides?: CallOverrides): Promise<string>;

  getRewardController(overrides?: CallOverrides): Promise<string>;

  "getRewardController()"(overrides?: CallOverrides): Promise<string>;

  getRewardStakeToken(overrides?: CallOverrides): Promise<string>;

  "getRewardStakeToken()"(overrides?: CallOverrides): Promise<string>;

  getRewardToken(overrides?: CallOverrides): Promise<string>;

  "getRewardToken()"(overrides?: CallOverrides): Promise<string>;

  getTreasury(overrides?: CallOverrides): Promise<string>;

  "getTreasury()"(overrides?: CallOverrides): Promise<string>;

  isEmergencyAdmin(admin: string, overrides?: CallOverrides): Promise<boolean>;

  "isEmergencyAdmin(address)"(
    admin: string,
    overrides?: CallOverrides
  ): Promise<boolean>;

  isPoolAdmin(arg0: string, overrides?: CallOverrides): Promise<boolean>;

  "isPoolAdmin(address)"(
    arg0: string,
    overrides?: CallOverrides
  ): Promise<boolean>;

  queryAccessControlMask(
    addr: string,
    filterMask: BigNumberish,
    overrides?: CallOverrides
  ): Promise<BigNumber>;

  "queryAccessControlMask(address,uint256)"(
    addr: string,
    filterMask: BigNumberish,
    overrides?: CallOverrides
  ): Promise<BigNumber>;

  setLendingPoolCollateralManager(
    arg0: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  "setLendingPoolCollateralManager(address)"(
    arg0: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  setLendingPoolConfiguratorImpl(
    arg0: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  "setLendingPoolConfiguratorImpl(address)"(
    arg0: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  setLendingPoolImpl(
    arg0: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  "setLendingPoolImpl(address)"(
    arg0: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  setLendingRateOracle(
    arg0: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  "setLendingRateOracle(address)"(
    arg0: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  setMarketId(
    marketId: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  "setMarketId(string)"(
    marketId: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  setPoolAdmin(
    arg0: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  "setPoolAdmin(address)"(
    arg0: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  setPriceOracle(
    arg0: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  "setPriceOracle(address)"(
    arg0: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  setRewardConfiguratorImpl(
    arg0: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  "setRewardConfiguratorImpl(address)"(
    arg0: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  setRewardController(
    arg0: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  "setRewardController(address)"(
    arg0: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  setRewardStakeTokenImpl(
    arg0: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  "setRewardStakeTokenImpl(address)"(
    arg0: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  setRewardTokenImpl(
    arg0: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  "setRewardTokenImpl(address)"(
    arg0: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  setTreasuryImpl(
    arg0: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  "setTreasuryImpl(address)"(
    arg0: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  callStatic: {
    createProxy(
      admin: string,
      impl: string,
      params: BytesLike,
      overrides?: CallOverrides
    ): Promise<string>;

    "createProxy(address,address,bytes)"(
      admin: string,
      impl: string,
      params: BytesLike,
      overrides?: CallOverrides
    ): Promise<string>;

    createProxyByName(
      admin: string,
      implName: string,
      params: BytesLike,
      overrides?: CallOverrides
    ): Promise<string>;

    "createProxyByName(address,string,bytes)"(
      admin: string,
      implName: string,
      params: BytesLike,
      overrides?: CallOverrides
    ): Promise<string>;

    getAddress(id: BigNumberish, overrides?: CallOverrides): Promise<string>;

    "getAddress(uint256)"(
      id: BigNumberish,
      overrides?: CallOverrides
    ): Promise<string>;

    getImplementation(id: string, overrides?: CallOverrides): Promise<string>;

    "getImplementation(string)"(
      id: string,
      overrides?: CallOverrides
    ): Promise<string>;

    getLendingPool(overrides?: CallOverrides): Promise<string>;

    "getLendingPool()"(overrides?: CallOverrides): Promise<string>;

    getLendingPoolCollateralManager(overrides?: CallOverrides): Promise<string>;

    "getLendingPoolCollateralManager()"(
      overrides?: CallOverrides
    ): Promise<string>;

    getLendingPoolConfigurator(overrides?: CallOverrides): Promise<string>;

    "getLendingPoolConfigurator()"(overrides?: CallOverrides): Promise<string>;

    getLendingRateOracle(overrides?: CallOverrides): Promise<string>;

    "getLendingRateOracle()"(overrides?: CallOverrides): Promise<string>;

    getMarketId(overrides?: CallOverrides): Promise<string>;

    "getMarketId()"(overrides?: CallOverrides): Promise<string>;

    getPoolAdmin(overrides?: CallOverrides): Promise<string>;

    "getPoolAdmin()"(overrides?: CallOverrides): Promise<string>;

    getPriceOracle(overrides?: CallOverrides): Promise<string>;

    "getPriceOracle()"(overrides?: CallOverrides): Promise<string>;

    getRewardConfigurator(overrides?: CallOverrides): Promise<string>;

    "getRewardConfigurator()"(overrides?: CallOverrides): Promise<string>;

    getRewardController(overrides?: CallOverrides): Promise<string>;

    "getRewardController()"(overrides?: CallOverrides): Promise<string>;

    getRewardStakeToken(overrides?: CallOverrides): Promise<string>;

    "getRewardStakeToken()"(overrides?: CallOverrides): Promise<string>;

    getRewardToken(overrides?: CallOverrides): Promise<string>;

    "getRewardToken()"(overrides?: CallOverrides): Promise<string>;

    getTreasury(overrides?: CallOverrides): Promise<string>;

    "getTreasury()"(overrides?: CallOverrides): Promise<string>;

    isEmergencyAdmin(
      admin: string,
      overrides?: CallOverrides
    ): Promise<boolean>;

    "isEmergencyAdmin(address)"(
      admin: string,
      overrides?: CallOverrides
    ): Promise<boolean>;

    isPoolAdmin(arg0: string, overrides?: CallOverrides): Promise<boolean>;

    "isPoolAdmin(address)"(
      arg0: string,
      overrides?: CallOverrides
    ): Promise<boolean>;

    queryAccessControlMask(
      addr: string,
      filterMask: BigNumberish,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

    "queryAccessControlMask(address,uint256)"(
      addr: string,
      filterMask: BigNumberish,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

    setLendingPoolCollateralManager(
      arg0: string,
      overrides?: CallOverrides
    ): Promise<void>;

    "setLendingPoolCollateralManager(address)"(
      arg0: string,
      overrides?: CallOverrides
    ): Promise<void>;

    setLendingPoolConfiguratorImpl(
      arg0: string,
      overrides?: CallOverrides
    ): Promise<void>;

    "setLendingPoolConfiguratorImpl(address)"(
      arg0: string,
      overrides?: CallOverrides
    ): Promise<void>;

    setLendingPoolImpl(arg0: string, overrides?: CallOverrides): Promise<void>;

    "setLendingPoolImpl(address)"(
      arg0: string,
      overrides?: CallOverrides
    ): Promise<void>;

    setLendingRateOracle(
      arg0: string,
      overrides?: CallOverrides
    ): Promise<void>;

    "setLendingRateOracle(address)"(
      arg0: string,
      overrides?: CallOverrides
    ): Promise<void>;

    setMarketId(marketId: string, overrides?: CallOverrides): Promise<void>;

    "setMarketId(string)"(
      marketId: string,
      overrides?: CallOverrides
    ): Promise<void>;

    setPoolAdmin(arg0: string, overrides?: CallOverrides): Promise<void>;

    "setPoolAdmin(address)"(
      arg0: string,
      overrides?: CallOverrides
    ): Promise<void>;

    setPriceOracle(arg0: string, overrides?: CallOverrides): Promise<void>;

    "setPriceOracle(address)"(
      arg0: string,
      overrides?: CallOverrides
    ): Promise<void>;

    setRewardConfiguratorImpl(
      arg0: string,
      overrides?: CallOverrides
    ): Promise<void>;

    "setRewardConfiguratorImpl(address)"(
      arg0: string,
      overrides?: CallOverrides
    ): Promise<void>;

    setRewardController(arg0: string, overrides?: CallOverrides): Promise<void>;

    "setRewardController(address)"(
      arg0: string,
      overrides?: CallOverrides
    ): Promise<void>;

    setRewardStakeTokenImpl(
      arg0: string,
      overrides?: CallOverrides
    ): Promise<void>;

    "setRewardStakeTokenImpl(address)"(
      arg0: string,
      overrides?: CallOverrides
    ): Promise<void>;

    setRewardTokenImpl(arg0: string, overrides?: CallOverrides): Promise<void>;

    "setRewardTokenImpl(address)"(
      arg0: string,
      overrides?: CallOverrides
    ): Promise<void>;

    setTreasuryImpl(arg0: string, overrides?: CallOverrides): Promise<void>;

    "setTreasuryImpl(address)"(
      arg0: string,
      overrides?: CallOverrides
    ): Promise<void>;
  };

  filters: {
    MarketIdSet(newMarketId: null): EventFilter;
  };

  estimateGas: {
    createProxy(
      admin: string,
      impl: string,
      params: BytesLike,
      overrides?: Overrides
    ): Promise<BigNumber>;

    "createProxy(address,address,bytes)"(
      admin: string,
      impl: string,
      params: BytesLike,
      overrides?: Overrides
    ): Promise<BigNumber>;

    createProxyByName(
      admin: string,
      implName: string,
      params: BytesLike,
      overrides?: Overrides
    ): Promise<BigNumber>;

    "createProxyByName(address,string,bytes)"(
      admin: string,
      implName: string,
      params: BytesLike,
      overrides?: Overrides
    ): Promise<BigNumber>;

    getAddress(id: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;

    "getAddress(uint256)"(
      id: BigNumberish,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

    getImplementation(
      id: string,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

    "getImplementation(string)"(
      id: string,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

    getLendingPool(overrides?: CallOverrides): Promise<BigNumber>;

    "getLendingPool()"(overrides?: CallOverrides): Promise<BigNumber>;

    getLendingPoolCollateralManager(
      overrides?: CallOverrides
    ): Promise<BigNumber>;

    "getLendingPoolCollateralManager()"(
      overrides?: CallOverrides
    ): Promise<BigNumber>;

    getLendingPoolConfigurator(overrides?: CallOverrides): Promise<BigNumber>;

    "getLendingPoolConfigurator()"(
      overrides?: CallOverrides
    ): Promise<BigNumber>;

    getLendingRateOracle(overrides?: CallOverrides): Promise<BigNumber>;

    "getLendingRateOracle()"(overrides?: CallOverrides): Promise<BigNumber>;

    getMarketId(overrides?: CallOverrides): Promise<BigNumber>;

    "getMarketId()"(overrides?: CallOverrides): Promise<BigNumber>;

    getPoolAdmin(overrides?: CallOverrides): Promise<BigNumber>;

    "getPoolAdmin()"(overrides?: CallOverrides): Promise<BigNumber>;

    getPriceOracle(overrides?: CallOverrides): Promise<BigNumber>;

    "getPriceOracle()"(overrides?: CallOverrides): Promise<BigNumber>;

    getRewardConfigurator(overrides?: CallOverrides): Promise<BigNumber>;

    "getRewardConfigurator()"(overrides?: CallOverrides): Promise<BigNumber>;

    getRewardController(overrides?: CallOverrides): Promise<BigNumber>;

    "getRewardController()"(overrides?: CallOverrides): Promise<BigNumber>;

    getRewardStakeToken(overrides?: CallOverrides): Promise<BigNumber>;

    "getRewardStakeToken()"(overrides?: CallOverrides): Promise<BigNumber>;

    getRewardToken(overrides?: CallOverrides): Promise<BigNumber>;

    "getRewardToken()"(overrides?: CallOverrides): Promise<BigNumber>;

    getTreasury(overrides?: CallOverrides): Promise<BigNumber>;

    "getTreasury()"(overrides?: CallOverrides): Promise<BigNumber>;

    isEmergencyAdmin(
      admin: string,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

    "isEmergencyAdmin(address)"(
      admin: string,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

    isPoolAdmin(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;

    "isPoolAdmin(address)"(
      arg0: string,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

    queryAccessControlMask(
      addr: string,
      filterMask: BigNumberish,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

    "queryAccessControlMask(address,uint256)"(
      addr: string,
      filterMask: BigNumberish,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

    setLendingPoolCollateralManager(
      arg0: string,
      overrides?: Overrides
    ): Promise<BigNumber>;

    "setLendingPoolCollateralManager(address)"(
      arg0: string,
      overrides?: Overrides
    ): Promise<BigNumber>;

    setLendingPoolConfiguratorImpl(
      arg0: string,
      overrides?: Overrides
    ): Promise<BigNumber>;

    "setLendingPoolConfiguratorImpl(address)"(
      arg0: string,
      overrides?: Overrides
    ): Promise<BigNumber>;

    setLendingPoolImpl(arg0: string, overrides?: Overrides): Promise<BigNumber>;

    "setLendingPoolImpl(address)"(
      arg0: string,
      overrides?: Overrides
    ): Promise<BigNumber>;

    setLendingRateOracle(
      arg0: string,
      overrides?: Overrides
    ): Promise<BigNumber>;

    "setLendingRateOracle(address)"(
      arg0: string,
      overrides?: Overrides
    ): Promise<BigNumber>;

    setMarketId(marketId: string, overrides?: Overrides): Promise<BigNumber>;

    "setMarketId(string)"(
      marketId: string,
      overrides?: Overrides
    ): Promise<BigNumber>;

    setPoolAdmin(arg0: string, overrides?: Overrides): Promise<BigNumber>;

    "setPoolAdmin(address)"(
      arg0: string,
      overrides?: Overrides
    ): Promise<BigNumber>;

    setPriceOracle(arg0: string, overrides?: Overrides): Promise<BigNumber>;

    "setPriceOracle(address)"(
      arg0: string,
      overrides?: Overrides
    ): Promise<BigNumber>;

    setRewardConfiguratorImpl(
      arg0: string,
      overrides?: Overrides
    ): Promise<BigNumber>;

    "setRewardConfiguratorImpl(address)"(
      arg0: string,
      overrides?: Overrides
    ): Promise<BigNumber>;

    setRewardController(
      arg0: string,
      overrides?: Overrides
    ): Promise<BigNumber>;

    "setRewardController(address)"(
      arg0: string,
      overrides?: Overrides
    ): Promise<BigNumber>;

    setRewardStakeTokenImpl(
      arg0: string,
      overrides?: Overrides
    ): Promise<BigNumber>;

    "setRewardStakeTokenImpl(address)"(
      arg0: string,
      overrides?: Overrides
    ): Promise<BigNumber>;

    setRewardTokenImpl(arg0: string, overrides?: Overrides): Promise<BigNumber>;

    "setRewardTokenImpl(address)"(
      arg0: string,
      overrides?: Overrides
    ): Promise<BigNumber>;

    setTreasuryImpl(arg0: string, overrides?: Overrides): Promise<BigNumber>;

    "setTreasuryImpl(address)"(
      arg0: string,
      overrides?: Overrides
    ): Promise<BigNumber>;
  };

  populateTransaction: {
    createProxy(
      admin: string,
      impl: string,
      params: BytesLike,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    "createProxy(address,address,bytes)"(
      admin: string,
      impl: string,
      params: BytesLike,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    createProxyByName(
      admin: string,
      implName: string,
      params: BytesLike,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    "createProxyByName(address,string,bytes)"(
      admin: string,
      implName: string,
      params: BytesLike,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    getAddress(
      id: BigNumberish,
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    "getAddress(uint256)"(
      id: BigNumberish,
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    getImplementation(
      id: string,
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    "getImplementation(string)"(
      id: string,
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    getLendingPool(overrides?: CallOverrides): Promise<PopulatedTransaction>;

    "getLendingPool()"(
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    getLendingPoolCollateralManager(
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    "getLendingPoolCollateralManager()"(
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    getLendingPoolConfigurator(
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    "getLendingPoolConfigurator()"(
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    getLendingRateOracle(
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    "getLendingRateOracle()"(
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    getMarketId(overrides?: CallOverrides): Promise<PopulatedTransaction>;

    "getMarketId()"(overrides?: CallOverrides): Promise<PopulatedTransaction>;

    getPoolAdmin(overrides?: CallOverrides): Promise<PopulatedTransaction>;

    "getPoolAdmin()"(overrides?: CallOverrides): Promise<PopulatedTransaction>;

    getPriceOracle(overrides?: CallOverrides): Promise<PopulatedTransaction>;

    "getPriceOracle()"(
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    getRewardConfigurator(
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    "getRewardConfigurator()"(
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    getRewardController(
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    "getRewardController()"(
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    getRewardStakeToken(
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    "getRewardStakeToken()"(
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    getRewardToken(overrides?: CallOverrides): Promise<PopulatedTransaction>;

    "getRewardToken()"(
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    getTreasury(overrides?: CallOverrides): Promise<PopulatedTransaction>;

    "getTreasury()"(overrides?: CallOverrides): Promise<PopulatedTransaction>;

    isEmergencyAdmin(
      admin: string,
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    "isEmergencyAdmin(address)"(
      admin: string,
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    isPoolAdmin(
      arg0: string,
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    "isPoolAdmin(address)"(
      arg0: string,
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    queryAccessControlMask(
      addr: string,
      filterMask: BigNumberish,
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    "queryAccessControlMask(address,uint256)"(
      addr: string,
      filterMask: BigNumberish,
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    setLendingPoolCollateralManager(
      arg0: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    "setLendingPoolCollateralManager(address)"(
      arg0: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    setLendingPoolConfiguratorImpl(
      arg0: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    "setLendingPoolConfiguratorImpl(address)"(
      arg0: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    setLendingPoolImpl(
      arg0: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    "setLendingPoolImpl(address)"(
      arg0: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    setLendingRateOracle(
      arg0: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    "setLendingRateOracle(address)"(
      arg0: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    setMarketId(
      marketId: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    "setMarketId(string)"(
      marketId: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    setPoolAdmin(
      arg0: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    "setPoolAdmin(address)"(
      arg0: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    setPriceOracle(
      arg0: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    "setPriceOracle(address)"(
      arg0: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    setRewardConfiguratorImpl(
      arg0: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    "setRewardConfiguratorImpl(address)"(
      arg0: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    setRewardController(
      arg0: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    "setRewardController(address)"(
      arg0: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    setRewardStakeTokenImpl(
      arg0: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    "setRewardStakeTokenImpl(address)"(
      arg0: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    setRewardTokenImpl(
      arg0: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    "setRewardTokenImpl(address)"(
      arg0: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    setTreasuryImpl(
      arg0: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    "setTreasuryImpl(address)"(
      arg0: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;
  };
}
