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

import BN from "bn.js";

export type TxID = { transactionId: string };

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

  OPERATOR_ROLE(): Promise<string>;

  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>;

  initialize: {
    ({ operator }: { operator: string }): Promise<TxID>;
  };

  migrate: {
    ({
      _from,
      _to,
      _deadline,
      _requests,
    }: {
      _from: string;
      _to: string;
      _deadline: number | BN | string;
      _requests: {
        signatureApproval: {
          v: number | BN | string;
          r: string;
          s: string;
          nonce: string;
        };
        signatureRenounce: {
          v: number | BN | string;
          r: string;
          s: string;
          nonce: string;
        };
        nftAddress: string;
        contractInterface: number | BN | string;
        nftIds: (number | BN | string)[];
        balances: (number | BN | string)[];
      }[];
    }): Promise<TxID>;
  };

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

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

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