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

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

interface GoldMinerV2Interface extends ethers.utils.Interface {
  functions: {
    "GOLD_MINER()": FunctionFragment;
    "GOLD_PID()": FunctionFragment;
    "GOLN()": FunctionFragment;
    "add(uint256,address,address)": FunctionFragment;
    "batch(bytes[],bool)": FunctionFragment;
    "claimOwnership()": FunctionFragment;
    "deposit(uint256,uint256,address)": FunctionFragment;
    "emergencyWithdraw(uint256,address)": FunctionFragment;
    "goldnuggetPerBlock()": FunctionFragment;
    "harvest(uint256,address)": FunctionFragment;
    "harvestFromGoldMiner()": FunctionFragment;
    "init(address)": FunctionFragment;
    "lpToken(uint256)": FunctionFragment;
    "massUpdatePools(uint256[])": FunctionFragment;
    "migrate(uint256)": FunctionFragment;
    "migrator()": FunctionFragment;
    "owner()": FunctionFragment;
    "pendingGoldNugget(uint256,address)": FunctionFragment;
    "pendingOwner()": FunctionFragment;
    "permitToken(address,address,address,uint256,uint256,uint8,bytes32,bytes32)": FunctionFragment;
    "poolInfo(uint256)": FunctionFragment;
    "poolLength()": FunctionFragment;
    "rewarder(uint256)": FunctionFragment;
    "set(uint256,uint256,address,bool)": FunctionFragment;
    "setMigrator(address)": FunctionFragment;
    "totalAllocPoint()": FunctionFragment;
    "transferOwnership(address,bool,bool)": FunctionFragment;
    "updatePool(uint256)": FunctionFragment;
    "userInfo(uint256,address)": FunctionFragment;
    "withdraw(uint256,uint256,address)": FunctionFragment;
    "withdrawAndHarvest(uint256,uint256,address)": FunctionFragment;
  };

  encodeFunctionData(
    functionFragment: "GOLD_MINER",
    values?: undefined
  ): string;
  encodeFunctionData(functionFragment: "GOLD_PID", values?: undefined): string;
  encodeFunctionData(functionFragment: "GOLN", values?: undefined): string;
  encodeFunctionData(
    functionFragment: "add",
    values: [BigNumberish, string, string]
  ): string;
  encodeFunctionData(
    functionFragment: "batch",
    values: [BytesLike[], boolean]
  ): string;
  encodeFunctionData(
    functionFragment: "claimOwnership",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "deposit",
    values: [BigNumberish, BigNumberish, string]
  ): string;
  encodeFunctionData(
    functionFragment: "emergencyWithdraw",
    values: [BigNumberish, string]
  ): string;
  encodeFunctionData(
    functionFragment: "goldnuggetPerBlock",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "harvest",
    values: [BigNumberish, string]
  ): string;
  encodeFunctionData(
    functionFragment: "harvestFromGoldMiner",
    values?: undefined
  ): string;
  encodeFunctionData(functionFragment: "init", values: [string]): string;
  encodeFunctionData(
    functionFragment: "lpToken",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "massUpdatePools",
    values: [BigNumberish[]]
  ): string;
  encodeFunctionData(
    functionFragment: "migrate",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(functionFragment: "migrator", values?: undefined): string;
  encodeFunctionData(functionFragment: "owner", values?: undefined): string;
  encodeFunctionData(
    functionFragment: "pendingGoldNugget",
    values: [BigNumberish, string]
  ): string;
  encodeFunctionData(
    functionFragment: "pendingOwner",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "permitToken",
    values: [
      string,
      string,
      string,
      BigNumberish,
      BigNumberish,
      BigNumberish,
      BytesLike,
      BytesLike
    ]
  ): string;
  encodeFunctionData(
    functionFragment: "poolInfo",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "poolLength",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "rewarder",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "set",
    values: [BigNumberish, BigNumberish, string, boolean]
  ): string;
  encodeFunctionData(functionFragment: "setMigrator", values: [string]): string;
  encodeFunctionData(
    functionFragment: "totalAllocPoint",
    values?: undefined
  ): string;
  encodeFunctionData(
    functionFragment: "transferOwnership",
    values: [string, boolean, boolean]
  ): string;
  encodeFunctionData(
    functionFragment: "updatePool",
    values: [BigNumberish]
  ): string;
  encodeFunctionData(
    functionFragment: "userInfo",
    values: [BigNumberish, string]
  ): string;
  encodeFunctionData(
    functionFragment: "withdraw",
    values: [BigNumberish, BigNumberish, string]
  ): string;
  encodeFunctionData(
    functionFragment: "withdrawAndHarvest",
    values: [BigNumberish, BigNumberish, string]
  ): string;

  decodeFunctionResult(functionFragment: "GOLD_MINER", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "GOLD_PID", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "GOLN", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "add", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "batch", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "claimOwnership",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "emergencyWithdraw",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "goldnuggetPerBlock",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "harvest", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "harvestFromGoldMiner",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "init", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "lpToken", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "massUpdatePools",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "migrate", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "migrator", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "pendingGoldNugget",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "pendingOwner",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "permitToken",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "poolInfo", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "poolLength", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "rewarder", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "set", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "setMigrator",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "totalAllocPoint",
    data: BytesLike
  ): Result;
  decodeFunctionResult(
    functionFragment: "transferOwnership",
    data: BytesLike
  ): Result;
  decodeFunctionResult(functionFragment: "updatePool", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "userInfo", data: BytesLike): Result;
  decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result;
  decodeFunctionResult(
    functionFragment: "withdrawAndHarvest",
    data: BytesLike
  ): Result;

  events: {
    "Deposit(address,uint256,uint256,address)": EventFragment;
    "EmergencyWithdraw(address,uint256,uint256,address)": EventFragment;
    "Harvest(address,uint256,uint256)": EventFragment;
    "LogInit()": EventFragment;
    "LogPoolAddition(uint256,uint256,address,address)": EventFragment;
    "LogSetPool(uint256,uint256,address,bool)": EventFragment;
    "LogUpdatePool(uint256,uint64,uint256,uint256)": EventFragment;
    "OwnershipTransferred(address,address)": EventFragment;
    "Withdraw(address,uint256,uint256,address)": EventFragment;
  };

  getEvent(nameOrSignatureOrTopic: "Deposit"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "EmergencyWithdraw"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "Harvest"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "LogInit"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "LogPoolAddition"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "LogSetPool"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "LogUpdatePool"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment;
  getEvent(nameOrSignatureOrTopic: "Withdraw"): EventFragment;
}

export class GoldMinerV2 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: GoldMinerV2Interface;

  functions: {
    GOLD_MINER(overrides?: CallOverrides): Promise<[string]>;

    "GOLD_MINER()"(overrides?: CallOverrides): Promise<[string]>;

    GOLD_PID(overrides?: CallOverrides): Promise<[BigNumber]>;

    "GOLD_PID()"(overrides?: CallOverrides): Promise<[BigNumber]>;

    GOLN(overrides?: CallOverrides): Promise<[string]>;

    "GOLN()"(overrides?: CallOverrides): Promise<[string]>;

    add(
      allocPoint: BigNumberish,
      _lpToken: string,
      _rewarder: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    "add(uint256,address,address)"(
      allocPoint: BigNumberish,
      _lpToken: string,
      _rewarder: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    batch(
      calls: BytesLike[],
      revertOnFail: boolean,
      overrides?: PayableOverrides
    ): Promise<ContractTransaction>;

    "batch(bytes[],bool)"(
      calls: BytesLike[],
      revertOnFail: boolean,
      overrides?: PayableOverrides
    ): Promise<ContractTransaction>;

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

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

    deposit(
      pid: BigNumberish,
      amount: BigNumberish,
      to: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    "deposit(uint256,uint256,address)"(
      pid: BigNumberish,
      amount: BigNumberish,
      to: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    emergencyWithdraw(
      pid: BigNumberish,
      to: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    "emergencyWithdraw(uint256,address)"(
      pid: BigNumberish,
      to: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

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

    "goldnuggetPerBlock()"(
      overrides?: CallOverrides
    ): Promise<[BigNumber] & { amount: BigNumber }>;

    harvest(
      pid: BigNumberish,
      to: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    "harvest(uint256,address)"(
      pid: BigNumberish,
      to: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

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

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

    init(
      dummyToken: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    "init(address)"(
      dummyToken: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    lpToken(arg0: BigNumberish, overrides?: CallOverrides): Promise<[string]>;

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

    massUpdatePools(
      pids: BigNumberish[],
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    "massUpdatePools(uint256[])"(
      pids: BigNumberish[],
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    migrate(
      _pid: BigNumberish,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    "migrate(uint256)"(
      _pid: BigNumberish,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    migrator(overrides?: CallOverrides): Promise<[string]>;

    "migrator()"(overrides?: CallOverrides): Promise<[string]>;

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

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

    pendingGoldNugget(
      _pid: BigNumberish,
      _user: string,
      overrides?: CallOverrides
    ): Promise<[BigNumber] & { pending: BigNumber }>;

    "pendingGoldNugget(uint256,address)"(
      _pid: BigNumberish,
      _user: string,
      overrides?: CallOverrides
    ): Promise<[BigNumber] & { pending: BigNumber }>;

    pendingOwner(overrides?: CallOverrides): Promise<[string]>;

    "pendingOwner()"(overrides?: CallOverrides): Promise<[string]>;

    permitToken(
      token: string,
      from: string,
      to: string,
      amount: BigNumberish,
      deadline: BigNumberish,
      v: BigNumberish,
      r: BytesLike,
      s: BytesLike,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    "permitToken(address,address,address,uint256,uint256,uint8,bytes32,bytes32)"(
      token: string,
      from: string,
      to: string,
      amount: BigNumberish,
      deadline: BigNumberish,
      v: BigNumberish,
      r: BytesLike,
      s: BytesLike,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    poolInfo(
      arg0: BigNumberish,
      overrides?: CallOverrides
    ): Promise<
      [BigNumber, BigNumber, BigNumber] & {
        accGoldNuggetPerShare: BigNumber;
        lastRewardBlock: BigNumber;
        allocPoint: BigNumber;
      }
    >;

    "poolInfo(uint256)"(
      arg0: BigNumberish,
      overrides?: CallOverrides
    ): Promise<
      [BigNumber, BigNumber, BigNumber] & {
        accGoldNuggetPerShare: BigNumber;
        lastRewardBlock: BigNumber;
        allocPoint: BigNumber;
      }
    >;

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

    "poolLength()"(
      overrides?: CallOverrides
    ): Promise<[BigNumber] & { pools: BigNumber }>;

    rewarder(arg0: BigNumberish, overrides?: CallOverrides): Promise<[string]>;

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

    set(
      _pid: BigNumberish,
      _allocPoint: BigNumberish,
      _rewarder: string,
      overwrite: boolean,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    "set(uint256,uint256,address,bool)"(
      _pid: BigNumberish,
      _allocPoint: BigNumberish,
      _rewarder: string,
      overwrite: boolean,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    setMigrator(
      _migrator: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    "setMigrator(address)"(
      _migrator: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    totalAllocPoint(overrides?: CallOverrides): Promise<[BigNumber]>;

    "totalAllocPoint()"(overrides?: CallOverrides): Promise<[BigNumber]>;

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

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

    updatePool(
      pid: BigNumberish,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    "updatePool(uint256)"(
      pid: BigNumberish,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    userInfo(
      arg0: BigNumberish,
      arg1: string,
      overrides?: CallOverrides
    ): Promise<
      [BigNumber, BigNumber] & { amount: BigNumber; rewardDebt: BigNumber }
    >;

    "userInfo(uint256,address)"(
      arg0: BigNumberish,
      arg1: string,
      overrides?: CallOverrides
    ): Promise<
      [BigNumber, BigNumber] & { amount: BigNumber; rewardDebt: BigNumber }
    >;

    withdraw(
      pid: BigNumberish,
      amount: BigNumberish,
      to: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    "withdraw(uint256,uint256,address)"(
      pid: BigNumberish,
      amount: BigNumberish,
      to: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    withdrawAndHarvest(
      pid: BigNumberish,
      amount: BigNumberish,
      to: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;

    "withdrawAndHarvest(uint256,uint256,address)"(
      pid: BigNumberish,
      amount: BigNumberish,
      to: string,
      overrides?: Overrides
    ): Promise<ContractTransaction>;
  };

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

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

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

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

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

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

  add(
    allocPoint: BigNumberish,
    _lpToken: string,
    _rewarder: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  "add(uint256,address,address)"(
    allocPoint: BigNumberish,
    _lpToken: string,
    _rewarder: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  batch(
    calls: BytesLike[],
    revertOnFail: boolean,
    overrides?: PayableOverrides
  ): Promise<ContractTransaction>;

  "batch(bytes[],bool)"(
    calls: BytesLike[],
    revertOnFail: boolean,
    overrides?: PayableOverrides
  ): Promise<ContractTransaction>;

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

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

  deposit(
    pid: BigNumberish,
    amount: BigNumberish,
    to: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  "deposit(uint256,uint256,address)"(
    pid: BigNumberish,
    amount: BigNumberish,
    to: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  emergencyWithdraw(
    pid: BigNumberish,
    to: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  "emergencyWithdraw(uint256,address)"(
    pid: BigNumberish,
    to: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

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

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

  harvest(
    pid: BigNumberish,
    to: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  "harvest(uint256,address)"(
    pid: BigNumberish,
    to: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

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

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

  init(dummyToken: string, overrides?: Overrides): Promise<ContractTransaction>;

  "init(address)"(
    dummyToken: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  lpToken(arg0: BigNumberish, overrides?: CallOverrides): Promise<string>;

  "lpToken(uint256)"(
    arg0: BigNumberish,
    overrides?: CallOverrides
  ): Promise<string>;

  massUpdatePools(
    pids: BigNumberish[],
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  "massUpdatePools(uint256[])"(
    pids: BigNumberish[],
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  migrate(
    _pid: BigNumberish,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  "migrate(uint256)"(
    _pid: BigNumberish,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

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

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

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

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

  pendingGoldNugget(
    _pid: BigNumberish,
    _user: string,
    overrides?: CallOverrides
  ): Promise<BigNumber>;

  "pendingGoldNugget(uint256,address)"(
    _pid: BigNumberish,
    _user: string,
    overrides?: CallOverrides
  ): Promise<BigNumber>;

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

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

  permitToken(
    token: string,
    from: string,
    to: string,
    amount: BigNumberish,
    deadline: BigNumberish,
    v: BigNumberish,
    r: BytesLike,
    s: BytesLike,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  "permitToken(address,address,address,uint256,uint256,uint8,bytes32,bytes32)"(
    token: string,
    from: string,
    to: string,
    amount: BigNumberish,
    deadline: BigNumberish,
    v: BigNumberish,
    r: BytesLike,
    s: BytesLike,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  poolInfo(
    arg0: BigNumberish,
    overrides?: CallOverrides
  ): Promise<
    [BigNumber, BigNumber, BigNumber] & {
      accGoldNuggetPerShare: BigNumber;
      lastRewardBlock: BigNumber;
      allocPoint: BigNumber;
    }
  >;

  "poolInfo(uint256)"(
    arg0: BigNumberish,
    overrides?: CallOverrides
  ): Promise<
    [BigNumber, BigNumber, BigNumber] & {
      accGoldNuggetPerShare: BigNumber;
      lastRewardBlock: BigNumber;
      allocPoint: BigNumber;
    }
  >;

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

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

  rewarder(arg0: BigNumberish, overrides?: CallOverrides): Promise<string>;

  "rewarder(uint256)"(
    arg0: BigNumberish,
    overrides?: CallOverrides
  ): Promise<string>;

  set(
    _pid: BigNumberish,
    _allocPoint: BigNumberish,
    _rewarder: string,
    overwrite: boolean,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  "set(uint256,uint256,address,bool)"(
    _pid: BigNumberish,
    _allocPoint: BigNumberish,
    _rewarder: string,
    overwrite: boolean,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  setMigrator(
    _migrator: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  "setMigrator(address)"(
    _migrator: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

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

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

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

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

  updatePool(
    pid: BigNumberish,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  "updatePool(uint256)"(
    pid: BigNumberish,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  userInfo(
    arg0: BigNumberish,
    arg1: string,
    overrides?: CallOverrides
  ): Promise<
    [BigNumber, BigNumber] & { amount: BigNumber; rewardDebt: BigNumber }
  >;

  "userInfo(uint256,address)"(
    arg0: BigNumberish,
    arg1: string,
    overrides?: CallOverrides
  ): Promise<
    [BigNumber, BigNumber] & { amount: BigNumber; rewardDebt: BigNumber }
  >;

  withdraw(
    pid: BigNumberish,
    amount: BigNumberish,
    to: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  "withdraw(uint256,uint256,address)"(
    pid: BigNumberish,
    amount: BigNumberish,
    to: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  withdrawAndHarvest(
    pid: BigNumberish,
    amount: BigNumberish,
    to: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  "withdrawAndHarvest(uint256,uint256,address)"(
    pid: BigNumberish,
    amount: BigNumberish,
    to: string,
    overrides?: Overrides
  ): Promise<ContractTransaction>;

  callStatic: {
    GOLD_MINER(overrides?: CallOverrides): Promise<string>;

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

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

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

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

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

    add(
      allocPoint: BigNumberish,
      _lpToken: string,
      _rewarder: string,
      overrides?: CallOverrides
    ): Promise<void>;

    "add(uint256,address,address)"(
      allocPoint: BigNumberish,
      _lpToken: string,
      _rewarder: string,
      overrides?: CallOverrides
    ): Promise<void>;

    batch(
      calls: BytesLike[],
      revertOnFail: boolean,
      overrides?: CallOverrides
    ): Promise<
      [boolean[], string[]] & { successes: boolean[]; results: string[] }
    >;

    "batch(bytes[],bool)"(
      calls: BytesLike[],
      revertOnFail: boolean,
      overrides?: CallOverrides
    ): Promise<
      [boolean[], string[]] & { successes: boolean[]; results: string[] }
    >;

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

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

    deposit(
      pid: BigNumberish,
      amount: BigNumberish,
      to: string,
      overrides?: CallOverrides
    ): Promise<void>;

    "deposit(uint256,uint256,address)"(
      pid: BigNumberish,
      amount: BigNumberish,
      to: string,
      overrides?: CallOverrides
    ): Promise<void>;

    emergencyWithdraw(
      pid: BigNumberish,
      to: string,
      overrides?: CallOverrides
    ): Promise<void>;

    "emergencyWithdraw(uint256,address)"(
      pid: BigNumberish,
      to: string,
      overrides?: CallOverrides
    ): Promise<void>;

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

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

    harvest(
      pid: BigNumberish,
      to: string,
      overrides?: CallOverrides
    ): Promise<void>;

    "harvest(uint256,address)"(
      pid: BigNumberish,
      to: string,
      overrides?: CallOverrides
    ): Promise<void>;

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

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

    init(dummyToken: string, overrides?: CallOverrides): Promise<void>;

    "init(address)"(
      dummyToken: string,
      overrides?: CallOverrides
    ): Promise<void>;

    lpToken(arg0: BigNumberish, overrides?: CallOverrides): Promise<string>;

    "lpToken(uint256)"(
      arg0: BigNumberish,
      overrides?: CallOverrides
    ): Promise<string>;

    massUpdatePools(
      pids: BigNumberish[],
      overrides?: CallOverrides
    ): Promise<void>;

    "massUpdatePools(uint256[])"(
      pids: BigNumberish[],
      overrides?: CallOverrides
    ): Promise<void>;

    migrate(_pid: BigNumberish, overrides?: CallOverrides): Promise<void>;

    "migrate(uint256)"(
      _pid: BigNumberish,
      overrides?: CallOverrides
    ): Promise<void>;

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

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

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

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

    pendingGoldNugget(
      _pid: BigNumberish,
      _user: string,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

    "pendingGoldNugget(uint256,address)"(
      _pid: BigNumberish,
      _user: string,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

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

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

    permitToken(
      token: string,
      from: string,
      to: string,
      amount: BigNumberish,
      deadline: BigNumberish,
      v: BigNumberish,
      r: BytesLike,
      s: BytesLike,
      overrides?: CallOverrides
    ): Promise<void>;

    "permitToken(address,address,address,uint256,uint256,uint8,bytes32,bytes32)"(
      token: string,
      from: string,
      to: string,
      amount: BigNumberish,
      deadline: BigNumberish,
      v: BigNumberish,
      r: BytesLike,
      s: BytesLike,
      overrides?: CallOverrides
    ): Promise<void>;

    poolInfo(
      arg0: BigNumberish,
      overrides?: CallOverrides
    ): Promise<
      [BigNumber, BigNumber, BigNumber] & {
        accGoldNuggetPerShare: BigNumber;
        lastRewardBlock: BigNumber;
        allocPoint: BigNumber;
      }
    >;

    "poolInfo(uint256)"(
      arg0: BigNumberish,
      overrides?: CallOverrides
    ): Promise<
      [BigNumber, BigNumber, BigNumber] & {
        accGoldNuggetPerShare: BigNumber;
        lastRewardBlock: BigNumber;
        allocPoint: BigNumber;
      }
    >;

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

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

    rewarder(arg0: BigNumberish, overrides?: CallOverrides): Promise<string>;

    "rewarder(uint256)"(
      arg0: BigNumberish,
      overrides?: CallOverrides
    ): Promise<string>;

    set(
      _pid: BigNumberish,
      _allocPoint: BigNumberish,
      _rewarder: string,
      overwrite: boolean,
      overrides?: CallOverrides
    ): Promise<void>;

    "set(uint256,uint256,address,bool)"(
      _pid: BigNumberish,
      _allocPoint: BigNumberish,
      _rewarder: string,
      overwrite: boolean,
      overrides?: CallOverrides
    ): Promise<void>;

    setMigrator(_migrator: string, overrides?: CallOverrides): Promise<void>;

    "setMigrator(address)"(
      _migrator: string,
      overrides?: CallOverrides
    ): Promise<void>;

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

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

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

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

    updatePool(
      pid: BigNumberish,
      overrides?: CallOverrides
    ): Promise<
      [BigNumber, BigNumber, BigNumber] & {
        accGoldNuggetPerShare: BigNumber;
        lastRewardBlock: BigNumber;
        allocPoint: BigNumber;
      }
    >;

    "updatePool(uint256)"(
      pid: BigNumberish,
      overrides?: CallOverrides
    ): Promise<
      [BigNumber, BigNumber, BigNumber] & {
        accGoldNuggetPerShare: BigNumber;
        lastRewardBlock: BigNumber;
        allocPoint: BigNumber;
      }
    >;

    userInfo(
      arg0: BigNumberish,
      arg1: string,
      overrides?: CallOverrides
    ): Promise<
      [BigNumber, BigNumber] & { amount: BigNumber; rewardDebt: BigNumber }
    >;

    "userInfo(uint256,address)"(
      arg0: BigNumberish,
      arg1: string,
      overrides?: CallOverrides
    ): Promise<
      [BigNumber, BigNumber] & { amount: BigNumber; rewardDebt: BigNumber }
    >;

    withdraw(
      pid: BigNumberish,
      amount: BigNumberish,
      to: string,
      overrides?: CallOverrides
    ): Promise<void>;

    "withdraw(uint256,uint256,address)"(
      pid: BigNumberish,
      amount: BigNumberish,
      to: string,
      overrides?: CallOverrides
    ): Promise<void>;

    withdrawAndHarvest(
      pid: BigNumberish,
      amount: BigNumberish,
      to: string,
      overrides?: CallOverrides
    ): Promise<void>;

    "withdrawAndHarvest(uint256,uint256,address)"(
      pid: BigNumberish,
      amount: BigNumberish,
      to: string,
      overrides?: CallOverrides
    ): Promise<void>;
  };

  filters: {
    Deposit(
      user: string | null,
      pid: BigNumberish | null,
      amount: null,
      to: string | null
    ): EventFilter;

    EmergencyWithdraw(
      user: string | null,
      pid: BigNumberish | null,
      amount: null,
      to: string | null
    ): EventFilter;

    Harvest(
      user: string | null,
      pid: BigNumberish | null,
      amount: null
    ): EventFilter;

    LogInit(): EventFilter;

    LogPoolAddition(
      pid: BigNumberish | null,
      allocPoint: null,
      lpToken: string | null,
      rewarder: string | null
    ): EventFilter;

    LogSetPool(
      pid: BigNumberish | null,
      allocPoint: null,
      rewarder: string | null,
      overwrite: null
    ): EventFilter;

    LogUpdatePool(
      pid: BigNumberish | null,
      lastRewardBlock: null,
      lpSupply: null,
      accGoldNuggetPerShare: null
    ): EventFilter;

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

    Withdraw(
      user: string | null,
      pid: BigNumberish | null,
      amount: null,
      to: string | null
    ): EventFilter;
  };

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

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

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

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

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

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

    add(
      allocPoint: BigNumberish,
      _lpToken: string,
      _rewarder: string,
      overrides?: Overrides
    ): Promise<BigNumber>;

    "add(uint256,address,address)"(
      allocPoint: BigNumberish,
      _lpToken: string,
      _rewarder: string,
      overrides?: Overrides
    ): Promise<BigNumber>;

    batch(
      calls: BytesLike[],
      revertOnFail: boolean,
      overrides?: PayableOverrides
    ): Promise<BigNumber>;

    "batch(bytes[],bool)"(
      calls: BytesLike[],
      revertOnFail: boolean,
      overrides?: PayableOverrides
    ): Promise<BigNumber>;

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

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

    deposit(
      pid: BigNumberish,
      amount: BigNumberish,
      to: string,
      overrides?: Overrides
    ): Promise<BigNumber>;

    "deposit(uint256,uint256,address)"(
      pid: BigNumberish,
      amount: BigNumberish,
      to: string,
      overrides?: Overrides
    ): Promise<BigNumber>;

    emergencyWithdraw(
      pid: BigNumberish,
      to: string,
      overrides?: Overrides
    ): Promise<BigNumber>;

    "emergencyWithdraw(uint256,address)"(
      pid: BigNumberish,
      to: string,
      overrides?: Overrides
    ): Promise<BigNumber>;

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

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

    harvest(
      pid: BigNumberish,
      to: string,
      overrides?: Overrides
    ): Promise<BigNumber>;

    "harvest(uint256,address)"(
      pid: BigNumberish,
      to: string,
      overrides?: Overrides
    ): Promise<BigNumber>;

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

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

    init(dummyToken: string, overrides?: Overrides): Promise<BigNumber>;

    "init(address)"(
      dummyToken: string,
      overrides?: Overrides
    ): Promise<BigNumber>;

    lpToken(arg0: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;

    "lpToken(uint256)"(
      arg0: BigNumberish,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

    massUpdatePools(
      pids: BigNumberish[],
      overrides?: Overrides
    ): Promise<BigNumber>;

    "massUpdatePools(uint256[])"(
      pids: BigNumberish[],
      overrides?: Overrides
    ): Promise<BigNumber>;

    migrate(_pid: BigNumberish, overrides?: Overrides): Promise<BigNumber>;

    "migrate(uint256)"(
      _pid: BigNumberish,
      overrides?: Overrides
    ): Promise<BigNumber>;

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

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

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

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

    pendingGoldNugget(
      _pid: BigNumberish,
      _user: string,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

    "pendingGoldNugget(uint256,address)"(
      _pid: BigNumberish,
      _user: string,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

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

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

    permitToken(
      token: string,
      from: string,
      to: string,
      amount: BigNumberish,
      deadline: BigNumberish,
      v: BigNumberish,
      r: BytesLike,
      s: BytesLike,
      overrides?: Overrides
    ): Promise<BigNumber>;

    "permitToken(address,address,address,uint256,uint256,uint8,bytes32,bytes32)"(
      token: string,
      from: string,
      to: string,
      amount: BigNumberish,
      deadline: BigNumberish,
      v: BigNumberish,
      r: BytesLike,
      s: BytesLike,
      overrides?: Overrides
    ): Promise<BigNumber>;

    poolInfo(arg0: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;

    "poolInfo(uint256)"(
      arg0: BigNumberish,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

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

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

    rewarder(arg0: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;

    "rewarder(uint256)"(
      arg0: BigNumberish,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

    set(
      _pid: BigNumberish,
      _allocPoint: BigNumberish,
      _rewarder: string,
      overwrite: boolean,
      overrides?: Overrides
    ): Promise<BigNumber>;

    "set(uint256,uint256,address,bool)"(
      _pid: BigNumberish,
      _allocPoint: BigNumberish,
      _rewarder: string,
      overwrite: boolean,
      overrides?: Overrides
    ): Promise<BigNumber>;

    setMigrator(_migrator: string, overrides?: Overrides): Promise<BigNumber>;

    "setMigrator(address)"(
      _migrator: string,
      overrides?: Overrides
    ): Promise<BigNumber>;

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

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

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

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

    updatePool(pid: BigNumberish, overrides?: Overrides): Promise<BigNumber>;

    "updatePool(uint256)"(
      pid: BigNumberish,
      overrides?: Overrides
    ): Promise<BigNumber>;

    userInfo(
      arg0: BigNumberish,
      arg1: string,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

    "userInfo(uint256,address)"(
      arg0: BigNumberish,
      arg1: string,
      overrides?: CallOverrides
    ): Promise<BigNumber>;

    withdraw(
      pid: BigNumberish,
      amount: BigNumberish,
      to: string,
      overrides?: Overrides
    ): Promise<BigNumber>;

    "withdraw(uint256,uint256,address)"(
      pid: BigNumberish,
      amount: BigNumberish,
      to: string,
      overrides?: Overrides
    ): Promise<BigNumber>;

    withdrawAndHarvest(
      pid: BigNumberish,
      amount: BigNumberish,
      to: string,
      overrides?: Overrides
    ): Promise<BigNumber>;

    "withdrawAndHarvest(uint256,uint256,address)"(
      pid: BigNumberish,
      amount: BigNumberish,
      to: string,
      overrides?: Overrides
    ): Promise<BigNumber>;
  };

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

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

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

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

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

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

    add(
      allocPoint: BigNumberish,
      _lpToken: string,
      _rewarder: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    "add(uint256,address,address)"(
      allocPoint: BigNumberish,
      _lpToken: string,
      _rewarder: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    batch(
      calls: BytesLike[],
      revertOnFail: boolean,
      overrides?: PayableOverrides
    ): Promise<PopulatedTransaction>;

    "batch(bytes[],bool)"(
      calls: BytesLike[],
      revertOnFail: boolean,
      overrides?: PayableOverrides
    ): Promise<PopulatedTransaction>;

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

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

    deposit(
      pid: BigNumberish,
      amount: BigNumberish,
      to: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    "deposit(uint256,uint256,address)"(
      pid: BigNumberish,
      amount: BigNumberish,
      to: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    emergencyWithdraw(
      pid: BigNumberish,
      to: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    "emergencyWithdraw(uint256,address)"(
      pid: BigNumberish,
      to: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

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

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

    harvest(
      pid: BigNumberish,
      to: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    "harvest(uint256,address)"(
      pid: BigNumberish,
      to: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

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

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

    init(
      dummyToken: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    "init(address)"(
      dummyToken: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    lpToken(
      arg0: BigNumberish,
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    "lpToken(uint256)"(
      arg0: BigNumberish,
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    massUpdatePools(
      pids: BigNumberish[],
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    "massUpdatePools(uint256[])"(
      pids: BigNumberish[],
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    migrate(
      _pid: BigNumberish,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    "migrate(uint256)"(
      _pid: BigNumberish,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

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

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

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

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

    pendingGoldNugget(
      _pid: BigNumberish,
      _user: string,
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    "pendingGoldNugget(uint256,address)"(
      _pid: BigNumberish,
      _user: string,
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

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

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

    permitToken(
      token: string,
      from: string,
      to: string,
      amount: BigNumberish,
      deadline: BigNumberish,
      v: BigNumberish,
      r: BytesLike,
      s: BytesLike,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    "permitToken(address,address,address,uint256,uint256,uint8,bytes32,bytes32)"(
      token: string,
      from: string,
      to: string,
      amount: BigNumberish,
      deadline: BigNumberish,
      v: BigNumberish,
      r: BytesLike,
      s: BytesLike,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    poolInfo(
      arg0: BigNumberish,
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    "poolInfo(uint256)"(
      arg0: BigNumberish,
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

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

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

    rewarder(
      arg0: BigNumberish,
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    "rewarder(uint256)"(
      arg0: BigNumberish,
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    set(
      _pid: BigNumberish,
      _allocPoint: BigNumberish,
      _rewarder: string,
      overwrite: boolean,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    "set(uint256,uint256,address,bool)"(
      _pid: BigNumberish,
      _allocPoint: BigNumberish,
      _rewarder: string,
      overwrite: boolean,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    setMigrator(
      _migrator: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    "setMigrator(address)"(
      _migrator: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

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

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

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

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

    updatePool(
      pid: BigNumberish,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    "updatePool(uint256)"(
      pid: BigNumberish,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    userInfo(
      arg0: BigNumberish,
      arg1: string,
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    "userInfo(uint256,address)"(
      arg0: BigNumberish,
      arg1: string,
      overrides?: CallOverrides
    ): Promise<PopulatedTransaction>;

    withdraw(
      pid: BigNumberish,
      amount: BigNumberish,
      to: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    "withdraw(uint256,uint256,address)"(
      pid: BigNumberish,
      amount: BigNumberish,
      to: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    withdrawAndHarvest(
      pid: BigNumberish,
      amount: BigNumberish,
      to: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;

    "withdrawAndHarvest(uint256,uint256,address)"(
      pid: BigNumberish,
      amount: BigNumberish,
      to: string,
      overrides?: Overrides
    ): Promise<PopulatedTransaction>;
  };
}
