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

import BN from "bn.js";

export type TxID = { transactionId: string };

export interface ControlledToken {
  accessList(): Promise<string>;

  addBurner: {
    ({ account }: { account: string }): Promise<TxID>;
  };

  addMinter: {
    ({ account }: { account: string }): Promise<TxID>;
  };

  addOperator: {
    ({ account }: { account: string }): Promise<TxID>;
  };

  addPauser: {
    ({ account }: { account: string }): Promise<TxID>;
  };

  allowance({
    owner,
    spender,
  }: {
    owner: string;
    spender: string;
  }): Promise<BN>;

  approve: {
    ({
      _spender,
      _value,
    }: {
      _spender: string;
      _value: number | BN | string;
    }): Promise<TxID>;
  };

  balanceOf({ account }: { account: string }): Promise<BN>;

  cap(): Promise<BN>;

  capEnabled(): Promise<boolean>;

  checkingAccessList(): Promise<boolean>;

  decimals(): Promise<BN>;

  decreaseAllowance: {
    ({
      _spender,
      _subtractedValue,
    }: {
      _spender: string;
      _subtractedValue: number | BN | string;
    }): Promise<TxID>;
  };

  disableCap: {
    (): Promise<TxID>;
  };

  enableCap: {
    (): Promise<TxID>;
  };

  forcedBurn: {
    ({
      _who,
      _value,
    }: {
      _who: string;
      _value: number | BN | string;
    }): Promise<TxID>;
  };

  forcedTransfer: {
    ({
      _from,
      _to,
      _value,
    }: {
      _from: string;
      _to: string;
      _value: number | BN | string;
    }): Promise<TxID>;
  };

  increaseAllowance: {
    ({
      _spender,
      _addedValue,
    }: {
      _spender: string;
      _addedValue: number | BN | string;
    }): Promise<TxID>;
  };

  info(): Promise<string>;

  isBurner({ account }: { account: string }): Promise<boolean>;

  isCreator({ account }: { account: string }): Promise<boolean>;

  isMinter({ account }: { account: string }): Promise<boolean>;

  isOperator({ account }: { account: string }): Promise<boolean>;

  isOwner(): Promise<boolean>;

  isPauser({ account }: { account: string }): Promise<boolean>;

  mint: {
    ({
      _to,
      _amount,
    }: {
      _to: string;
      _amount: number | BN | string;
    }): Promise<TxID>;
  };

  name(): Promise<string>;

  owner(): Promise<string>;

  pause: {
    (): Promise<TxID>;
  };

  paused(): Promise<boolean>;

  removeAccessList: {
    (): Promise<TxID>;
  };

  renounceBurner: {
    (): Promise<TxID>;
  };

  renounceMinter: {
    (): Promise<TxID>;
  };

  renounceOperator: {
    (): Promise<TxID>;
  };

  renounceOwnership: {
    (): Promise<TxID>;
  };

  renouncePauser: {
    (): Promise<TxID>;
  };

  setCap: {
    ({ _newCap }: { _newCap: number | BN | string }): Promise<TxID>;
  };

  setupAccessList: {
    ({ _accessList }: { _accessList: string }): Promise<TxID>;
  };

  symbol(): Promise<string>;

  totalSupply(): Promise<BN>;

  transfer: {
    ({
      _to,
      _value,
    }: {
      _to: string;
      _value: number | BN | string;
    }): Promise<TxID>;
  };

  transferFrom: {
    ({
      _from,
      _to,
      _value,
    }: {
      _from: string;
      _to: string;
      _value: number | BN | string;
    }): Promise<TxID>;
  };

  transferOwnership: {
    ({ newOwner }: { newOwner: string }): Promise<TxID>;
  };

  unpause: {
    (): Promise<TxID>;
  };

  claimCreator: {
    ({ _address }: { _address: string }): Promise<TxID>;
  };

  claimOperator: {
    ({ _address }: { _address: string }): Promise<TxID>;
  };

  claimMinter: {
    ({ _address }: { _address: string }): Promise<TxID>;
  };

  claimBurner: {
    ({ _address }: { _address: string }): Promise<TxID>;
  };

  claimPauser: {
    ({ _address }: { _address: string }): Promise<TxID>;
  };

  addCreator: {
    ({ _address }: { _address: string }): Promise<TxID>;
  };

  renounceCreator: {
    (): Promise<TxID>;
  };

  adminAddMinter: {
    ({ _address }: { _address: string }): Promise<TxID>;
  };

  removeMinter: {
    ({ _address }: { _address: string }): Promise<TxID>;
  };

  adminAddPauser: {
    ({ _address }: { _address: string }): Promise<TxID>;
  };

  removePauser: {
    ({ _address }: { _address: string }): Promise<TxID>;
  };

  adminAddOperator: {
    ({ _address }: { _address: string }): Promise<TxID>;
  };

  removeOperator: {
    ({ _address }: { _address: string }): Promise<TxID>;
  };

  adminAddBurner: {
    ({ _address }: { _address: string }): Promise<TxID>;
  };

  removeBurner: {
    ({ _address }: { _address: string }): Promise<TxID>;
  };
}
