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

import BN from "bn.js";

export type TxID = { transactionId: string };

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

  DEFAULT_ADMIN_ROLE(): Promise<string>;

  decimalpercent(): 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>;

  maxValue(): Promise<BN>;

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

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

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

  split: {
    ({
      idNFT,
      amountNFT,
      value,
      buyer,
      seller,
      tos,
      shares,
    }: {
      idNFT: number | BN | string;
      amountNFT: number | BN | string;
      value: number | BN | string;
      buyer: string;
      seller: string;
      tos: string[];
      shares: (number | BN | string)[];
    }): Promise<TxID>;
  };

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

  tropETH(): Promise<string>;

  tropNFT(): Promise<string>;

  updateTropETH: {
    ({ erc20Address }: { erc20Address: string }): Promise<TxID>;
  };

  updateTropNFT: {
    ({ nftAddress }: { nftAddress: string }): Promise<TxID>;
  };
}
