/* 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 MarketAccessControllerInterface extends ethers.utils.Interface {
  functions: {
    "addImplementation(string,address)": FunctionFragment;
    "createProxy(address,address,bytes)": FunctionFragment;
    "createProxyByName(address,string,bytes)": FunctionFragment;
    "getAddress(uint256)": FunctionFragment;
    "getEmergencyAdmin()": 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;
    "grantRoles(address,uint256)": FunctionFragment;
    "isAddress(uint256,address)": FunctionFragment;
    "isEmergencyAdmin(address)": FunctionFragment;
    "isPoolAdmin(address)": FunctionFragment;
    "markProxies(uint256)": FunctionFragment;
    "owner()": FunctionFragment;
    "queryAccessControlMask(address,uint256)": FunctionFragment;
    "renounceOwnership()": FunctionFragment;
    "revokeRoles(address,uint256)": FunctionFragment;
    "revokeRolesFromAll(uint256,uint256)": FunctionFragment;
    "roleGrantees(uint256)": FunctionFragment;
    "setAddress(uint256,address)": FunctionFragment;
    "setAddressAsProxy(uint256,address)": FunctionFragment;
    "setAddressAsProxyWithInit(uint256,address,bytes)": FunctionFragment;
    "setEmergencyAdmin(address)": 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;
    "transferOwnership(address)": FunctionFragment;
    "unmarkProxies(uint256)": FunctionFragment;
  };

  encodeFunctionData(
    functionFragment: "addImplementation",
    values: [string, string]
  ): string;
  encodeFunctionData(
    functionFragment: "createProxy",
    values: [string, string, BytesLike]
  ): string;
  encodeFunctionData(
    functionFragment: "createProxyByName",
    values: [string, string, BytesLike]
  ): string;
  encodeFunctionData(
    functionFragment: "getAddress",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "getEmergencyAdmin",
    values?: undefined
  ): 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: "grantRoles",
    values: [string, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "isAddress",
    values: [BigNumberish, string]
  ): string;
  encodeFunctionData(
    functionFragment: "isEmergencyAdmin",
    values: [string]
  ): string;
  encodeFunctionData(functionFragment: "isPoolAdmin", values: [string]): string;
  encodeFunctionData(
    functionFragment: "markProxies",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(functionFragment: "owner", values?: undefined): string;
  encodeFunctionData(
    functionFragment: "queryAccessControlMask",
    values: [string, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "renounceOwnership",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "revokeRoles",
    values: [string, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "revokeRolesFromAll",
    values: [BigNumberish, BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "roleGrantees",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "setAddress",
    values: [BigNumberish, string]
  ): string;
  encodeFunctionData(
    functionFragment: "setAddressAsProxy",
    values: [BigNumberish, string]
  ): string;
  encodeFunctionData(
    functionFragment: "setAddressAsProxyWithInit",
    values: [BigNumberish, string, BytesLike]
  ): string;
  encodeFunctionData(
    functionFragment: "setEmergencyAdmin",
    values: [string]
  ): 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;
  encodeFunctionData(
    functionFragment: "transferOwnership",
    values: [string]
  ): string;
  encodeFunctionData(
    functionFragment: "unmarkProxies",
    values: [BigNumberish]
  ): string;

  decodeFunctionResult(
    functionFragment: "addImplementation",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "createProxy",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "createProxyByName",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "getAddress", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "getEmergencyAdmin",
    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: "grantRoles", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "isAddress", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "isEmergencyAdmin",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "isPoolAdmin",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "markProxies",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "queryAccessControlMask",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "renounceOwnership",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "revokeRoles",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "revokeRolesFromAll",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "roleGrantees",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "setAddress", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "setAddressAsProxy",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setAddressAsProxyWithInit",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setEmergencyAdmin",
    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;
  decodeFunctionResult(
    functionFragment: "transferOwnership",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "unmarkProxies",
    data: BytesLike
  ): Result;

  events: {
    "AddressSet(uint256,address,bool)": EventFragment;
    "EmergencyAdminUpdated(address)": EventFragment;
    "MarketIdSet(string)": EventFragment;
    "OwnershipTransferred(address,address)": EventFragment;
    "ProxyCreated(uint256,address)": EventFragment;
  };

  getEvent(nameOrSignatureOrTopic: "AddressSet"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "EmergencyAdminUpdated"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "MarketIdSet"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "ProxyCreated"): EventFragment;
}

export class MarketAccessController 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: MarketAccessControllerInterface;

  functions: {
    addImplementation(
      id: string,
      addr: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    "addImplementation(string,address)"(
      id: string,
      addr: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

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

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

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

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

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

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

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

    "getEmergencyAdmin()"(
      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;
    }>;

    grantRoles(
      addr: string,
      flags: BigNumberish,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    "grantRoles(address,uint256)"(
      addr: string,
      flags: BigNumberish,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

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

    "isAddress(uint256,address)"(
      id: BigNumberish,
      addr: string,
      overrides?: CallOverrides
    ): Promise<{
      0: boolean;
    }>;

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

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

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

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

    markProxies(
      id: BigNumberish,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    "markProxies(uint256)"(
      id: BigNumberish,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

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

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

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

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

    renounceOwnership(overrides?: Overrides): Promise<ContractTransaction>;

    "renounceOwnership()"(overrides?: Overrides): Promise<ContractTransaction>;

    revokeRoles(
      addr: string,
      flags: BigNumberish,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    "revokeRoles(address,uint256)"(
      addr: string,
      flags: BigNumberish,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    revokeRolesFromAll(
      flags: BigNumberish,
      limit: BigNumberish,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    "revokeRolesFromAll(uint256,uint256)"(
      flags: BigNumberish,
      limit: BigNumberish,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    roleGrantees(
      id: BigNumberish,
      overrides?: CallOverrides
    ): Promise<{
      addrList: string[];
      0: string[];
    }>;

    "roleGrantees(uint256)"(
      id: BigNumberish,
      overrides?: CallOverrides
    ): Promise<{
      addrList: string[];
      0: string[];
    }>;

    setAddress(
      id: BigNumberish,
      newAddress: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    "setAddress(uint256,address)"(
      id: BigNumberish,
      newAddress: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    setAddressAsProxy(
      id: BigNumberish,
      implementationAddress: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    "setAddressAsProxy(uint256,address)"(
      id: BigNumberish,
      implementationAddress: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    setAddressAsProxyWithInit(
      id: BigNumberish,
      implementationAddress: string,
      params: BytesLike,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    "setAddressAsProxyWithInit(uint256,address,bytes)"(
      id: BigNumberish,
      implementationAddress: string,
      params: BytesLike,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    setEmergencyAdmin(
      emergencyAdmin: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    "setEmergencyAdmin(address)"(
      emergencyAdmin: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    transferOwnership(
      newOwner: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    "transferOwnership(address)"(
      newOwner: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    unmarkProxies(
      id: BigNumberish,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    "unmarkProxies(uint256)"(
      id: BigNumberish,
      overrides?: Overrides
    ): Promise<ContractTransaction>;
  };

  addImplementation(
    id: string,
    addr: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  "addImplementation(string,address)"(
    id: string,
    addr: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

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

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

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

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

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

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

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

  "getEmergencyAdmin()"(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>;

  grantRoles(
    addr: string,
    flags: BigNumberish,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  "grantRoles(address,uint256)"(
    addr: string,
    flags: BigNumberish,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  isAddress(
    id: BigNumberish,
    addr: string,
    overrides?: CallOverrides
  ): Promise<boolean>;

  "isAddress(uint256,address)"(
    id: BigNumberish,
    addr: string,
    overrides?: CallOverrides
  ): Promise<boolean>;

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

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

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

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

  markProxies(
    id: BigNumberish,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  "markProxies(uint256)"(
    id: BigNumberish,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

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

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

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

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

  renounceOwnership(overrides?: Overrides): Promise<ContractTransaction>;

  "renounceOwnership()"(overrides?: Overrides): Promise<ContractTransaction>;

  revokeRoles(
    addr: string,
    flags: BigNumberish,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  "revokeRoles(address,uint256)"(
    addr: string,
    flags: BigNumberish,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  revokeRolesFromAll(
    flags: BigNumberish,
    limit: BigNumberish,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  "revokeRolesFromAll(uint256,uint256)"(
    flags: BigNumberish,
    limit: BigNumberish,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  roleGrantees(id: BigNumberish, overrides?: CallOverrides): Promise<string[]>;

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

  setAddress(
    id: BigNumberish,
    newAddress: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  "setAddress(uint256,address)"(
    id: BigNumberish,
    newAddress: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  setAddressAsProxy(
    id: BigNumberish,
    implementationAddress: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  "setAddressAsProxy(uint256,address)"(
    id: BigNumberish,
    implementationAddress: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  setAddressAsProxyWithInit(
    id: BigNumberish,
    implementationAddress: string,
    params: BytesLike,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  "setAddressAsProxyWithInit(uint256,address,bytes)"(
    id: BigNumberish,
    implementationAddress: string,
    params: BytesLike,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  setEmergencyAdmin(
    emergencyAdmin: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  "setEmergencyAdmin(address)"(
    emergencyAdmin: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  transferOwnership(
    newOwner: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  "transferOwnership(address)"(
    newOwner: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  unmarkProxies(
    id: BigNumberish,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  "unmarkProxies(uint256)"(
    id: BigNumberish,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  callStatic: {
    addImplementation(
      id: string,
      addr: string,
      overrides?: CallOverrides
    ): Promise<void>;

    "addImplementation(string,address)"(
      id: string,
      addr: string,
      overrides?: CallOverrides
    ): Promise<void>;

    createProxy(
      adminAddress: string,
      implAddress: string,
      params: BytesLike,
      overrides?: CallOverrides
    ): Promise<string>;

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

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

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

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

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

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

    "getEmergencyAdmin()"(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>;

    grantRoles(
      addr: string,
      flags: BigNumberish,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

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

    isAddress(
      id: BigNumberish,
      addr: string,
      overrides?: CallOverrides
    ): Promise<boolean>;

    "isAddress(uint256,address)"(
      id: BigNumberish,
      addr: string,
      overrides?: CallOverrides
    ): Promise<boolean>;

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

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

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

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

    markProxies(id: BigNumberish, overrides?: CallOverrides): Promise<void>;

    "markProxies(uint256)"(
      id: BigNumberish,
      overrides?: CallOverrides
    ): Promise<void>;

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

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

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

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

    renounceOwnership(overrides?: CallOverrides): Promise<void>;

    "renounceOwnership()"(overrides?: CallOverrides): Promise<void>;

    revokeRoles(
      addr: string,
      flags: BigNumberish,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

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

    revokeRolesFromAll(
      flags: BigNumberish,
      limit: BigNumberish,
      overrides?: CallOverrides
    ): Promise<boolean>;

    "revokeRolesFromAll(uint256,uint256)"(
      flags: BigNumberish,
      limit: BigNumberish,
      overrides?: CallOverrides
    ): Promise<boolean>;

    roleGrantees(
      id: BigNumberish,
      overrides?: CallOverrides
    ): Promise<string[]>;

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

    setAddress(
      id: BigNumberish,
      newAddress: string,
      overrides?: CallOverrides
    ): Promise<void>;

    "setAddress(uint256,address)"(
      id: BigNumberish,
      newAddress: string,
      overrides?: CallOverrides
    ): Promise<void>;

    setAddressAsProxy(
      id: BigNumberish,
      implementationAddress: string,
      overrides?: CallOverrides
    ): Promise<void>;

    "setAddressAsProxy(uint256,address)"(
      id: BigNumberish,
      implementationAddress: string,
      overrides?: CallOverrides
    ): Promise<void>;

    setAddressAsProxyWithInit(
      id: BigNumberish,
      implementationAddress: string,
      params: BytesLike,
      overrides?: CallOverrides
    ): Promise<void>;

    "setAddressAsProxyWithInit(uint256,address,bytes)"(
      id: BigNumberish,
      implementationAddress: string,
      params: BytesLike,
      overrides?: CallOverrides
    ): Promise<void>;

    setEmergencyAdmin(
      emergencyAdmin: string,
      overrides?: CallOverrides
    ): Promise<void>;

    "setEmergencyAdmin(address)"(
      emergencyAdmin: string,
      overrides?: CallOverrides
    ): Promise<void>;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    transferOwnership(
      newOwner: string,
      overrides?: CallOverrides
    ): Promise<void>;

    "transferOwnership(address)"(
      newOwner: string,
      overrides?: CallOverrides
    ): Promise<void>;

    unmarkProxies(id: BigNumberish, overrides?: CallOverrides): Promise<void>;

    "unmarkProxies(uint256)"(
      id: BigNumberish,
      overrides?: CallOverrides
    ): Promise<void>;
  };

  filters: {
    AddressSet(
      id: BigNumberish | null,
      newAddress: string | null,
      hasProxy: null
    ): EventFilter;

    EmergencyAdminUpdated(newAddress: string | null): EventFilter;

    MarketIdSet(newMarketId: null): EventFilter;

    OwnershipTransferred(
      previousOwner: string | null,
      newOwner: string | null
    ): EventFilter;

    ProxyCreated(
      id: BigNumberish | null,
      newAddress: string | null
    ): EventFilter;
  };

  estimateGas: {
    addImplementation(
      id: string,
      addr: string,
      overrides?: Overrides
    ): Promise<BigNumber>;

    "addImplementation(string,address)"(
      id: string,
      addr: string,
      overrides?: Overrides
    ): Promise<BigNumber>;

    createProxy(
      adminAddress: string,
      implAddress: string,
      params: BytesLike,
      overrides?: Overrides
    ): Promise<BigNumber>;

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

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

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

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

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

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

    "getEmergencyAdmin()"(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>;

    grantRoles(
      addr: string,
      flags: BigNumberish,
      overrides?: Overrides
    ): Promise<BigNumber>;

    "grantRoles(address,uint256)"(
      addr: string,
      flags: BigNumberish,
      overrides?: Overrides
    ): Promise<BigNumber>;

    isAddress(
      id: BigNumberish,
      addr: string,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

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

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

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

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

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

    markProxies(id: BigNumberish, overrides?: Overrides): Promise<BigNumber>;

    "markProxies(uint256)"(
      id: BigNumberish,
      overrides?: Overrides
    ): Promise<BigNumber>;

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

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

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

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

    renounceOwnership(overrides?: Overrides): Promise<BigNumber>;

    "renounceOwnership()"(overrides?: Overrides): Promise<BigNumber>;

    revokeRoles(
      addr: string,
      flags: BigNumberish,
      overrides?: Overrides
    ): Promise<BigNumber>;

    "revokeRoles(address,uint256)"(
      addr: string,
      flags: BigNumberish,
      overrides?: Overrides
    ): Promise<BigNumber>;

    revokeRolesFromAll(
      flags: BigNumberish,
      limit: BigNumberish,
      overrides?: Overrides
    ): Promise<BigNumber>;

    "revokeRolesFromAll(uint256,uint256)"(
      flags: BigNumberish,
      limit: BigNumberish,
      overrides?: Overrides
    ): Promise<BigNumber>;

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

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

    setAddress(
      id: BigNumberish,
      newAddress: string,
      overrides?: Overrides
    ): Promise<BigNumber>;

    "setAddress(uint256,address)"(
      id: BigNumberish,
      newAddress: string,
      overrides?: Overrides
    ): Promise<BigNumber>;

    setAddressAsProxy(
      id: BigNumberish,
      implementationAddress: string,
      overrides?: Overrides
    ): Promise<BigNumber>;

    "setAddressAsProxy(uint256,address)"(
      id: BigNumberish,
      implementationAddress: string,
      overrides?: Overrides
    ): Promise<BigNumber>;

    setAddressAsProxyWithInit(
      id: BigNumberish,
      implementationAddress: string,
      params: BytesLike,
      overrides?: Overrides
    ): Promise<BigNumber>;

    "setAddressAsProxyWithInit(uint256,address,bytes)"(
      id: BigNumberish,
      implementationAddress: string,
      params: BytesLike,
      overrides?: Overrides
    ): Promise<BigNumber>;

    setEmergencyAdmin(
      emergencyAdmin: string,
      overrides?: Overrides
    ): Promise<BigNumber>;

    "setEmergencyAdmin(address)"(
      emergencyAdmin: string,
      overrides?: Overrides
    ): Promise<BigNumber>;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    transferOwnership(
      newOwner: string,
      overrides?: Overrides
    ): Promise<BigNumber>;

    "transferOwnership(address)"(
      newOwner: string,
      overrides?: Overrides
    ): Promise<BigNumber>;

    unmarkProxies(id: BigNumberish, overrides?: Overrides): Promise<BigNumber>;

    "unmarkProxies(uint256)"(
      id: BigNumberish,
      overrides?: Overrides
    ): Promise<BigNumber>;
  };

  populateTransaction: {
    addImplementation(
      id: string,
      addr: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    "addImplementation(string,address)"(
      id: string,
      addr: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    createProxy(
      adminAddress: string,
      implAddress: string,
      params: BytesLike,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

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

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

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

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

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

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

    "getEmergencyAdmin()"(
      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>;

    grantRoles(
      addr: string,
      flags: BigNumberish,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    "grantRoles(address,uint256)"(
      addr: string,
      flags: BigNumberish,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    isAddress(
      id: BigNumberish,
      addr: string,
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

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

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

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

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

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

    markProxies(
      id: BigNumberish,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    "markProxies(uint256)"(
      id: BigNumberish,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

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

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

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

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

    renounceOwnership(overrides?: Overrides): Promise<PopulatedTransaction>;

    "renounceOwnership()"(overrides?: Overrides): Promise<PopulatedTransaction>;

    revokeRoles(
      addr: string,
      flags: BigNumberish,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    "revokeRoles(address,uint256)"(
      addr: string,
      flags: BigNumberish,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    revokeRolesFromAll(
      flags: BigNumberish,
      limit: BigNumberish,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    "revokeRolesFromAll(uint256,uint256)"(
      flags: BigNumberish,
      limit: BigNumberish,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

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

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

    setAddress(
      id: BigNumberish,
      newAddress: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    "setAddress(uint256,address)"(
      id: BigNumberish,
      newAddress: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    setAddressAsProxy(
      id: BigNumberish,
      implementationAddress: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    "setAddressAsProxy(uint256,address)"(
      id: BigNumberish,
      implementationAddress: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    setAddressAsProxyWithInit(
      id: BigNumberish,
      implementationAddress: string,
      params: BytesLike,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    "setAddressAsProxyWithInit(uint256,address,bytes)"(
      id: BigNumberish,
      implementationAddress: string,
      params: BytesLike,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    setEmergencyAdmin(
      emergencyAdmin: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    "setEmergencyAdmin(address)"(
      emergencyAdmin: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    transferOwnership(
      newOwner: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    "transferOwnership(address)"(
      newOwner: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    unmarkProxies(
      id: BigNumberish,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    "unmarkProxies(uint256)"(
      id: BigNumberish,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;
  };
}
