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

import BN from "bn.js";

export type TxID = { transactionId: string };

export interface RarumCollectibles {
  ADMIN_ROLE(): Promise<string>;

  DEFAULT_ADMIN_ROLE(): Promise<string>;

  DOMAIN_SEPARATOR(): Promise<string>;

  MINTER_ROLE(): Promise<string>;

  PAUSER_ROLE(): Promise<string>;

  URI_SETTER_ROLE(): Promise<string>;

  VERSION(): Promise<string>;

  authorizationState({
    authorizer,
    authorization,
  }: {
    authorizer: string;
    authorization: string;
  }): Promise<boolean>;

  authorizeOperator: {
    ({
      _authorization,
    }: {
      _authorization: {
        owner: string;
        operator: string;
        approved: boolean;
        deadline: number | BN | string;
        authorization: string;
        v: number | BN | string;
        r: string;
        s: string;
      };
    }): Promise<TxID>;
  };

  authorizedTransfer: {
    ({
      _authorization,
    }: {
      _authorization: {
        signer: string;
        to: string;
        ids: (number | BN | string)[];
        amounts: (number | BN | string)[];
        deadline: number | BN | string;
        authorization: string;
        v: number | BN | string;
        r: string;
        s: string;
      };
    }): Promise<TxID>;
  };

  balanceOf({
    account,
    id,
  }: {
    account: string;
    id: number | BN | string;
  }): Promise<BN>;

  balanceOfBatch({
    accounts,
    ids,
  }: {
    accounts: string[];
    ids: (number | BN | string)[];
  }): Promise<BN[]>;

  baseURI(): Promise<string>;

  burn: {
    ({
      account,
      id,
      value,
    }: {
      account: string;
      id: number | BN | string;
      value: number | BN | string;
    }): Promise<TxID>;
  };

  burnBatch: {
    ({
      account,
      ids,
      values,
    }: {
      account: string;
      ids: (number | BN | string)[];
      values: (number | BN | string)[];
    }): Promise<TxID>;
  };

  collectionOf({ wallet }: { wallet: string }): Promise<{ 0: BN[]; 1: BN[] }>;

  exists({ id }: { id: number | BN | string }): Promise<boolean>;

  getRegisteredTokens(): Promise<BN[]>;

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

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

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

  initialize: {
    ({
      _name,
      _symbol,
      _operator,
    }: {
      _name: string;
      _symbol: string;
      _operator: string;
    }): Promise<TxID>;
  };

  isApprovedForAll({
    account,
    operator,
  }: {
    account: string;
    operator: string;
  }): Promise<boolean>;

  isRegistered({ id }: { id: number | BN | string }): Promise<boolean>;

  mint: {
    ({
      account,
      id,
      amount,
      data,
    }: {
      account: string;
      id: number | BN | string;
      amount: number | BN | string;
      data: string;
    }): Promise<TxID>;
  };

  mintBatch: {
    ({
      to,
      ids,
      amounts,
      data,
    }: {
      to: string;
      ids: (number | BN | string)[];
      amounts: (number | BN | string)[];
      data: string;
    }): Promise<TxID>;
  };

  name(): Promise<string>;

  owner(): Promise<string>;

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

  paused(): Promise<boolean>;

  registerId: {
    ({ id, cid }: { id: number | BN | string; cid: string }): Promise<TxID>;
  };

  registerIdBatch: {
    ({
      ids,
      cids,
    }: {
      ids: (number | BN | string)[];
      cids: string[];
    }): Promise<TxID>;
  };

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

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

  safeBatchTransferFrom: {
    ({
      from,
      to,
      ids,
      amounts,
      data,
    }: {
      from: string;
      to: string;
      ids: (number | BN | string)[];
      amounts: (number | BN | string)[];
      data: string;
    }): Promise<TxID>;
  };

  safeTransferFrom: {
    ({
      from,
      to,
      id,
      amount,
      data,
    }: {
      from: string;
      to: string;
      id: number | BN | string;
      amount: number | BN | string;
      data: string;
    }): Promise<TxID>;
  };

  setApprovalForAll: {
    ({
      operator,
      approved,
    }: {
      operator: string;
      approved: boolean;
    }): Promise<TxID>;
  };

  setBaseURI: {
    ({ newuri }: { newuri: string }): Promise<TxID>;
  };

  setOwner: {
    ({ _newOwner }: { _newOwner: string }): Promise<TxID>;
  };

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

  symbol(): Promise<string>;

  totalSupply({ id }: { id: number | BN | string }): Promise<BN>;

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

  updateTokenURI: {
    ({ id, cid }: { id: number | BN | string; cid: string }): Promise<TxID>;
  };

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