def METHOD_NAME() -> experiments.OfflineExperimentConfig[
    bc.BCNetworks, actor_core_lib.FeedForwardPolicy, types.Transition]:
  """Returns a config for BC experiments."""
  # Create an environment, grab the spec, and use it to create networks.
  environment = helpers.make_environment(task=FLAGS.env_name)
  environment_spec = specs.make_environment_spec(environment)
  # Define the demonstrations factory.
  dataset_name = helpers.get_dataset_name(FLAGS.env_name)
  demonstration_dataset_factory = _make_demonstration_dataset_factory(
      dataset_name, FLAGS.num_demonstrations, environment_spec,
      FLAGS.batch_size)
  # Load the demonstrations to compute the stats.
  dataset = tfds.get_tfds_dataset(
      dataset_name, FLAGS.num_demonstrations, env_spec=environment_spec)
  shift, scale = helpers.get_observation_stats(dataset)
  # Define the network factory.
  network_factory = _make_network_factory(  # pytype: disable=wrong-arg-types  # numpy-scalars
      shift=shift,
      scale=scale,
      num_layers=FLAGS.num_layers,
      num_units=FLAGS.num_units,
      dropout_rate=FLAGS.dropout_rate)
  # Create the BC builder.
  bc_config = bc.BCConfig(learning_rate=FLAGS.learning_rate)
  bc_builder = bc.BCBuilder(bc_config, loss_fn=bc.mse())
  environment_factory = _make_environment_factory(FLAGS.env_name)
  return experiments.OfflineExperimentConfig(
      builder=bc_builder,
      network_factory=network_factory,
      demonstration_dataset_factory=demonstration_dataset_factory,
      environment_factory=environment_factory,
      max_num_learner_steps=FLAGS.num_bc_steps,
      seed=FLAGS.seed,
      environment_spec=environment_spec,
  )