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

import BN from "bn.js";

export type TxID = { transactionId: string };

export interface Lootbox {
  DEFAULT_ADMIN_ROLE(): Promise<string>;

  MINTER_ROLE(): Promise<string>;

  OPERATOR_ROLE(): Promise<string>;

  classIsPreminted({ arg0 }: { arg0: number | BN | string }): Promise<boolean>;

  classToTokenIds({
    arg0,
    arg1,
  }: {
    arg0: number | BN | string;
    arg1: number | BN | string;
  }): Promise<BN>;

  getRoleAdmin({ role }: { role: string }): Promise<string>;

  getRoleMember({
    role,
    index,
  }: {
    role: string;
    index: number | BN | string;
  }): Promise<string>;

  getRoleMemberCount({ role }: { role: string }): Promise<BN>;

  grantRole: {
    ({ role, account }: { role: string; account: string }): Promise<TxID>;
  };

  hasRole({
    role,
    account,
  }: {
    role: string;
    account: string;
  }): Promise<boolean>;

  name(): Promise<string>;

  nftAddress(): Promise<string>;

  open: {
    ({
      _optionId,
      _toAddress,
      _amount,
    }: {
      _optionId: number | BN | string;
      _toAddress: string;
      _amount: number | BN | string;
    }): Promise<TxID>;
  };

  optionToSettings({
    arg0,
  }: {
    arg0: number | BN | string;
  }): Promise<{ maxQuantityPerOpen: BN; hasGuaranteedClasses: boolean }>;

  renounceRole: {
    ({ role, account }: { role: string; account: string }): Promise<TxID>;
  };

  resetClass: {
    ({ _classId }: { _classId: number | BN | string }): Promise<TxID>;
  };

  revokeRole: {
    ({ role, account }: { role: string; account: string }): Promise<TxID>;
  };

  setClassForTokenId: {
    ({
      _tokenId,
      _classId,
    }: {
      _tokenId: number | BN | string;
      _classId: number | BN | string;
    }): Promise<TxID>;
  };

  setOptionSettings: {
    ({
      _option,
      _maxQuantityPerOpen,
      _classProbabilities,
      _guarantees,
    }: {
      _option: number | BN | string;
      _maxQuantityPerOpen: number | BN | string;
      _classProbabilities: (number | BN | string)[];
      _guarantees: (number | BN | string)[];
    }): Promise<TxID>;
  };

  setSeed: {
    ({ _newSeed }: { _newSeed: number | BN | string }): Promise<TxID>;
  };

  setTokenIdsForClass: {
    ({
      _class,
      _tokenIds,
    }: {
      _class: number | BN | string;
      _tokenIds: (number | BN | string)[];
    }): Promise<TxID>;
  };

  setTokenIdsForClasses: {
    ({ _tokenIds }: { _tokenIds: (number | BN | string)[] }): Promise<TxID>;
  };

  supportsInterface({ interfaceId }: { interfaceId: string }): Promise<boolean>;

  symbol(): Promise<string>;

  uri({ _optionId }: { _optionId: number | BN | string }): Promise<string>;
}
