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

import BN from "bn.js";

export type TxID = { transactionId: string };

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

  MINTER_ROLE(): Promise<string>;

  OPERATOR_ROLE(): Promise<string>;

  PAUSER_ROLE(): Promise<string>;

  PROXY_DEPLOYER_ROLE(): Promise<string>;

  collectiblesBeacon(): Promise<string>;

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

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

  deployFungibleBeaconProxy(): Promise<void>;

  deployLootboxProxy: {
    ({
      _nftAddress,
      _name,
    }: {
      _nftAddress: string;
      _name: string;
    }): Promise<TxID>;
  };

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

  digitalTwinBeacon(): Promise<string>;

  fungibleBeacon(): 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: {
    ({
      _collectiblesBeacon,
      _loyaltyBeacon,
      _digitalTwinBeacon,
      _fungileBeacon,
      _lootboxBeacon,
      _defaultAdmin,
    }: {
      _collectiblesBeacon: string;
      _loyaltyBeacon: string;
      _digitalTwinBeacon: string;
      _fungileBeacon: string;
      _lootboxBeacon: string;
      _defaultAdmin: string;
    }): Promise<TxID>;
  };

  lootboxBeacon(): Promise<string>;

  loyaltyBeacon(): Promise<string>;

  multisigAdmin(): Promise<string>;

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

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

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