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

import {
  ethers,
  EventFilter,
  Signer,
  BigNumber,
  BigNumberish,
  PopulatedTransaction,
  BaseContract,
  ContractTransaction,
  Overrides,
  CallOverrides,
} from "ethers";
import { BytesLike } from "@ethersproject/bytes";
import { Listener, Provider } from "@ethersproject/providers";
import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi";
import { TypedEventFilter, TypedEvent, TypedListener } from "./commons";

interface IKeep3rParametersInterface extends ethers.utils.Interface {
  functions: {
    "bondTime()": FunctionFragment;
    "fee()": FunctionFragment;
    "inflationPeriod()": FunctionFragment;
    "keep3rHelper()": FunctionFragment;
    "keep3rV1()": FunctionFragment;
    "keep3rV1Proxy()": FunctionFragment;
    "kp3rWethPool()": FunctionFragment;
    "liquidityMinimum()": FunctionFragment;
    "rewardPeriodTime()": FunctionFragment;
    "setBondTime(uint256)": FunctionFragment;
    "setFee(uint256)": FunctionFragment;
    "setInflationPeriod(uint256)": FunctionFragment;
    "setKeep3rHelper(address)": FunctionFragment;
    "setKeep3rV1(address)": FunctionFragment;
    "setKeep3rV1Proxy(address)": FunctionFragment;
    "setKp3rWethPool(address)": FunctionFragment;
    "setLiquidityMinimum(uint256)": FunctionFragment;
    "setRewardPeriodTime(uint256)": FunctionFragment;
    "setUnbondTime(uint256)": FunctionFragment;
    "unbondTime()": FunctionFragment;
  };

  encodeFunctionData(functionFragment: "bondTime", values?: undefined): string;
  encodeFunctionData(functionFragment: "fee", values?: undefined): string;
  encodeFunctionData(
    functionFragment: "inflationPeriod",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "keep3rHelper",
    values?: undefined
  ): string;
  encodeFunctionData(functionFragment: "keep3rV1", values?: undefined): string;
  encodeFunctionData(
    functionFragment: "keep3rV1Proxy",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "kp3rWethPool",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "liquidityMinimum",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "rewardPeriodTime",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "setBondTime",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "setFee",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "setInflationPeriod",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "setKeep3rHelper",
    values: [string]
  ): string;
  encodeFunctionData(functionFragment: "setKeep3rV1", values: [string]): string;
  encodeFunctionData(
    functionFragment: "setKeep3rV1Proxy",
    values: [string]
  ): string;
  encodeFunctionData(
    functionFragment: "setKp3rWethPool",
    values: [string]
  ): string;
  encodeFunctionData(
    functionFragment: "setLiquidityMinimum",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "setRewardPeriodTime",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "setUnbondTime",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "unbondTime",
    values?: undefined
  ): string;

  decodeFunctionResult(functionFragment: "bondTime", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "fee", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "inflationPeriod",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "keep3rHelper",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "keep3rV1", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "keep3rV1Proxy",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "kp3rWethPool",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "liquidityMinimum",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "rewardPeriodTime",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setBondTime",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "setFee", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "setInflationPeriod",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setKeep3rHelper",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setKeep3rV1",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setKeep3rV1Proxy",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setKp3rWethPool",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setLiquidityMinimum",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setRewardPeriodTime",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "setUnbondTime",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "unbondTime", data: BytesLike): Result;

  events: {
    "BondTimeChange(uint256)": EventFragment;
    "FeeChange(uint256)": EventFragment;
    "InflationPeriodChange(uint256)": EventFragment;
    "Keep3rHelperChange(address)": EventFragment;
    "Keep3rV1Change(address)": EventFragment;
    "Keep3rV1ProxyChange(address)": EventFragment;
    "Kp3rWethPoolChange(address)": EventFragment;
    "LiquidityMinimumChange(uint256)": EventFragment;
    "RewardPeriodTimeChange(uint256)": EventFragment;
    "UnbondTimeChange(uint256)": EventFragment;
  };

  getEvent(nameOrSignatureOrTopic: "BondTimeChange"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "FeeChange"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "InflationPeriodChange"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "Keep3rHelperChange"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "Keep3rV1Change"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "Keep3rV1ProxyChange"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "Kp3rWethPoolChange"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "LiquidityMinimumChange"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "RewardPeriodTimeChange"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "UnbondTimeChange"): EventFragment;
}

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

  listeners<EventArgsArray extends Array<any>, EventArgsObject>(
    eventFilter?: TypedEventFilter<EventArgsArray, EventArgsObject>
  ): Array<TypedListener<EventArgsArray, EventArgsObject>>;
  off<EventArgsArray extends Array<any>, EventArgsObject>(
    eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
    listener: TypedListener<EventArgsArray, EventArgsObject>
  ): this;
  on<EventArgsArray extends Array<any>, EventArgsObject>(
    eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
    listener: TypedListener<EventArgsArray, EventArgsObject>
  ): this;
  once<EventArgsArray extends Array<any>, EventArgsObject>(
    eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
    listener: TypedListener<EventArgsArray, EventArgsObject>
  ): this;
  removeListener<EventArgsArray extends Array<any>, EventArgsObject>(
    eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
    listener: TypedListener<EventArgsArray, EventArgsObject>
  ): this;
  removeAllListeners<EventArgsArray extends Array<any>, EventArgsObject>(
    eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>
  ): this;

  listeners(eventName?: string): Array<Listener>;
  off(eventName: string, listener: Listener): this;
  on(eventName: string, listener: Listener): this;
  once(eventName: string, listener: Listener): this;
  removeListener(eventName: string, listener: Listener): this;
  removeAllListeners(eventName?: string): this;

  queryFilter<EventArgsArray extends Array<any>, EventArgsObject>(
    event: TypedEventFilter<EventArgsArray, EventArgsObject>,
    fromBlockOrBlockhash?: string | number | undefined,
    toBlock?: string | number | undefined
  ): Promise<Array<TypedEvent<EventArgsArray & EventArgsObject>>>;

  interface: IKeep3rParametersInterface;

  functions: {
    bondTime(
      overrides?: CallOverrides
    ): Promise<[BigNumber] & { _days: BigNumber }>;

    fee(
      overrides?: CallOverrides
    ): Promise<[BigNumber] & { _amount: BigNumber }>;

    inflationPeriod(
      overrides?: CallOverrides
    ): Promise<[BigNumber] & { _period: BigNumber }>;

    keep3rHelper(
      overrides?: CallOverrides
    ): Promise<[string] & { _keep3rHelper: string }>;

    keep3rV1(
      overrides?: CallOverrides
    ): Promise<[string] & { _keep3rV1: string }>;

    keep3rV1Proxy(
      overrides?: CallOverrides
    ): Promise<[string] & { _keep3rV1Proxy: string }>;

    kp3rWethPool(
      overrides?: CallOverrides
    ): Promise<[string] & { _kp3rWethPool: string }>;

    liquidityMinimum(
      overrides?: CallOverrides
    ): Promise<[BigNumber] & { _amount: BigNumber }>;

    rewardPeriodTime(
      overrides?: CallOverrides
    ): Promise<[BigNumber] & { _days: BigNumber }>;

    setBondTime(
      _bond: BigNumberish,
      overrides?: Overrides & { from?: string | Promise<string> }
    ): Promise<ContractTransaction>;

    setFee(
      _fee: BigNumberish,
      overrides?: Overrides & { from?: string | Promise<string> }
    ): Promise<ContractTransaction>;

    setInflationPeriod(
      _inflationPeriod: BigNumberish,
      overrides?: Overrides & { from?: string | Promise<string> }
    ): Promise<ContractTransaction>;

    setKeep3rHelper(
      _keep3rHelper: string,
      overrides?: Overrides & { from?: string | Promise<string> }
    ): Promise<ContractTransaction>;

    setKeep3rV1(
      _keep3rV1: string,
      overrides?: Overrides & { from?: string | Promise<string> }
    ): Promise<ContractTransaction>;

    setKeep3rV1Proxy(
      _keep3rV1Proxy: string,
      overrides?: Overrides & { from?: string | Promise<string> }
    ): Promise<ContractTransaction>;

    setKp3rWethPool(
      _kp3rWethPool: string,
      overrides?: Overrides & { from?: string | Promise<string> }
    ): Promise<ContractTransaction>;

    setLiquidityMinimum(
      _liquidityMinimum: BigNumberish,
      overrides?: Overrides & { from?: string | Promise<string> }
    ): Promise<ContractTransaction>;

    setRewardPeriodTime(
      _rewardPeriodTime: BigNumberish,
      overrides?: Overrides & { from?: string | Promise<string> }
    ): Promise<ContractTransaction>;

    setUnbondTime(
      _unbond: BigNumberish,
      overrides?: Overrides & { from?: string | Promise<string> }
    ): Promise<ContractTransaction>;

    unbondTime(
      overrides?: CallOverrides
    ): Promise<[BigNumber] & { _days: BigNumber }>;
  };

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

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

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

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

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

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

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

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

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

  setBondTime(
    _bond: BigNumberish,
    overrides?: Overrides & { from?: string | Promise<string> }
  ): Promise<ContractTransaction>;

  setFee(
    _fee: BigNumberish,
    overrides?: Overrides & { from?: string | Promise<string> }
  ): Promise<ContractTransaction>;

  setInflationPeriod(
    _inflationPeriod: BigNumberish,
    overrides?: Overrides & { from?: string | Promise<string> }
  ): Promise<ContractTransaction>;

  setKeep3rHelper(
    _keep3rHelper: string,
    overrides?: Overrides & { from?: string | Promise<string> }
  ): Promise<ContractTransaction>;

  setKeep3rV1(
    _keep3rV1: string,
    overrides?: Overrides & { from?: string | Promise<string> }
  ): Promise<ContractTransaction>;

  setKeep3rV1Proxy(
    _keep3rV1Proxy: string,
    overrides?: Overrides & { from?: string | Promise<string> }
  ): Promise<ContractTransaction>;

  setKp3rWethPool(
    _kp3rWethPool: string,
    overrides?: Overrides & { from?: string | Promise<string> }
  ): Promise<ContractTransaction>;

  setLiquidityMinimum(
    _liquidityMinimum: BigNumberish,
    overrides?: Overrides & { from?: string | Promise<string> }
  ): Promise<ContractTransaction>;

  setRewardPeriodTime(
    _rewardPeriodTime: BigNumberish,
    overrides?: Overrides & { from?: string | Promise<string> }
  ): Promise<ContractTransaction>;

  setUnbondTime(
    _unbond: BigNumberish,
    overrides?: Overrides & { from?: string | Promise<string> }
  ): Promise<ContractTransaction>;

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

  callStatic: {
    bondTime(overrides?: CallOverrides): Promise<BigNumber>;

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

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

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

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

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

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

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

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

    setBondTime(_bond: BigNumberish, overrides?: CallOverrides): Promise<void>;

    setFee(_fee: BigNumberish, overrides?: CallOverrides): Promise<void>;

    setInflationPeriod(
      _inflationPeriod: BigNumberish,
      overrides?: CallOverrides
    ): Promise<void>;

    setKeep3rHelper(
      _keep3rHelper: string,
      overrides?: CallOverrides
    ): Promise<void>;

    setKeep3rV1(_keep3rV1: string, overrides?: CallOverrides): Promise<void>;

    setKeep3rV1Proxy(
      _keep3rV1Proxy: string,
      overrides?: CallOverrides
    ): Promise<void>;

    setKp3rWethPool(
      _kp3rWethPool: string,
      overrides?: CallOverrides
    ): Promise<void>;

    setLiquidityMinimum(
      _liquidityMinimum: BigNumberish,
      overrides?: CallOverrides
    ): Promise<void>;

    setRewardPeriodTime(
      _rewardPeriodTime: BigNumberish,
      overrides?: CallOverrides
    ): Promise<void>;

    setUnbondTime(
      _unbond: BigNumberish,
      overrides?: CallOverrides
    ): Promise<void>;

    unbondTime(overrides?: CallOverrides): Promise<BigNumber>;
  };

  filters: {
    BondTimeChange(
      _bondTime?: null
    ): TypedEventFilter<[BigNumber], { _bondTime: BigNumber }>;

    FeeChange(_fee?: null): TypedEventFilter<[BigNumber], { _fee: BigNumber }>;

    InflationPeriodChange(
      _inflationPeriod?: null
    ): TypedEventFilter<[BigNumber], { _inflationPeriod: BigNumber }>;

    Keep3rHelperChange(
      _keep3rHelper?: null
    ): TypedEventFilter<[string], { _keep3rHelper: string }>;

    Keep3rV1Change(
      _keep3rV1?: null
    ): TypedEventFilter<[string], { _keep3rV1: string }>;

    Keep3rV1ProxyChange(
      _keep3rV1Proxy?: null
    ): TypedEventFilter<[string], { _keep3rV1Proxy: string }>;

    Kp3rWethPoolChange(
      _kp3rWethPool?: null
    ): TypedEventFilter<[string], { _kp3rWethPool: string }>;

    LiquidityMinimumChange(
      _liquidityMinimum?: null
    ): TypedEventFilter<[BigNumber], { _liquidityMinimum: BigNumber }>;

    RewardPeriodTimeChange(
      _rewardPeriodTime?: null
    ): TypedEventFilter<[BigNumber], { _rewardPeriodTime: BigNumber }>;

    UnbondTimeChange(
      _unbondTime?: null
    ): TypedEventFilter<[BigNumber], { _unbondTime: BigNumber }>;
  };

  estimateGas: {
    bondTime(overrides?: CallOverrides): Promise<BigNumber>;

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

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

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

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

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

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

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

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

    setBondTime(
      _bond: BigNumberish,
      overrides?: Overrides & { from?: string | Promise<string> }
    ): Promise<BigNumber>;

    setFee(
      _fee: BigNumberish,
      overrides?: Overrides & { from?: string | Promise<string> }
    ): Promise<BigNumber>;

    setInflationPeriod(
      _inflationPeriod: BigNumberish,
      overrides?: Overrides & { from?: string | Promise<string> }
    ): Promise<BigNumber>;

    setKeep3rHelper(
      _keep3rHelper: string,
      overrides?: Overrides & { from?: string | Promise<string> }
    ): Promise<BigNumber>;

    setKeep3rV1(
      _keep3rV1: string,
      overrides?: Overrides & { from?: string | Promise<string> }
    ): Promise<BigNumber>;

    setKeep3rV1Proxy(
      _keep3rV1Proxy: string,
      overrides?: Overrides & { from?: string | Promise<string> }
    ): Promise<BigNumber>;

    setKp3rWethPool(
      _kp3rWethPool: string,
      overrides?: Overrides & { from?: string | Promise<string> }
    ): Promise<BigNumber>;

    setLiquidityMinimum(
      _liquidityMinimum: BigNumberish,
      overrides?: Overrides & { from?: string | Promise<string> }
    ): Promise<BigNumber>;

    setRewardPeriodTime(
      _rewardPeriodTime: BigNumberish,
      overrides?: Overrides & { from?: string | Promise<string> }
    ): Promise<BigNumber>;

    setUnbondTime(
      _unbond: BigNumberish,
      overrides?: Overrides & { from?: string | Promise<string> }
    ): Promise<BigNumber>;

    unbondTime(overrides?: CallOverrides): Promise<BigNumber>;
  };

  populateTransaction: {
    bondTime(overrides?: CallOverrides): Promise<PopulatedTransaction>;

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

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

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

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

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

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

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

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

    setBondTime(
      _bond: BigNumberish,
      overrides?: Overrides & { from?: string | Promise<string> }
    ): Promise<PopulatedTransaction>;

    setFee(
      _fee: BigNumberish,
      overrides?: Overrides & { from?: string | Promise<string> }
    ): Promise<PopulatedTransaction>;

    setInflationPeriod(
      _inflationPeriod: BigNumberish,
      overrides?: Overrides & { from?: string | Promise<string> }
    ): Promise<PopulatedTransaction>;

    setKeep3rHelper(
      _keep3rHelper: string,
      overrides?: Overrides & { from?: string | Promise<string> }
    ): Promise<PopulatedTransaction>;

    setKeep3rV1(
      _keep3rV1: string,
      overrides?: Overrides & { from?: string | Promise<string> }
    ): Promise<PopulatedTransaction>;

    setKeep3rV1Proxy(
      _keep3rV1Proxy: string,
      overrides?: Overrides & { from?: string | Promise<string> }
    ): Promise<PopulatedTransaction>;

    setKp3rWethPool(
      _kp3rWethPool: string,
      overrides?: Overrides & { from?: string | Promise<string> }
    ): Promise<PopulatedTransaction>;

    setLiquidityMinimum(
      _liquidityMinimum: BigNumberish,
      overrides?: Overrides & { from?: string | Promise<string> }
    ): Promise<PopulatedTransaction>;

    setRewardPeriodTime(
      _rewardPeriodTime: BigNumberish,
      overrides?: Overrides & { from?: string | Promise<string> }
    ): Promise<PopulatedTransaction>;

    setUnbondTime(
      _unbond: BigNumberish,
      overrides?: Overrides & { from?: string | Promise<string> }
    ): Promise<PopulatedTransaction>;

    unbondTime(overrides?: CallOverrides): Promise<PopulatedTransaction>;
  };
}
