interface IJBOperatorStore {
  event SetOperator(
    address indexed operator,
    address indexed account,
    uint256 indexed domain,
    uint256[] permissionIndexes,
    uint256 packed
  );
  function permissionsOf(
    address _operator,
    address _account,
    uint256 _domain
  ) external view returns (uint256);
  function hasPermission(
    address _operator,
    address _account,
    uint256 _domain,
    uint256 _permissionIndex
  ) external view returns (bool);
  function hasPermissions(
    address _operator,
    address _account,
    uint256 _domain,
    uint256[] calldata _permissionIndexes
  ) external view returns (bool);
  function setOperator(JBOperatorData calldata _operatorData) external;
  function setOperators(JBOperatorData[] calldata _operatorData) external;
}