Add native call to Starlark proto_common.declare_generated_files to ProtoCommon.

PiperOrigin-RevId: 441097695
diff --git a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoCommon.java b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoCommon.java
index f920330..f1cffdb 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoCommon.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoCommon.java
@@ -153,6 +153,29 @@
     }
   }
 
+  public static ImmutableList<Artifact> declareGeneratedFiles(
+      RuleContext ruleContext, ConfiguredTarget protoTarget, String extension)
+      throws RuleErrorException, InterruptedException {
+    StarlarkFunction declareGeneratedFiles =
+        (StarlarkFunction)
+            ruleContext.getStarlarkDefinedBuiltin("proto_common_declare_generated_files");
+    ruleContext.initStarlarkRuleContext();
+    Sequence<?> outputs =
+        (Sequence<?>)
+            ruleContext.callStarlarkOrThrowRuleError(
+                declareGeneratedFiles,
+                ImmutableList.of(
+                    /* actions */ ruleContext.getStarlarkRuleContext().actions(),
+                    /* proto_library_target */ protoTarget,
+                    /* extension */ extension),
+                ImmutableMap.of());
+    try {
+      return Sequence.cast(outputs, Artifact.class, "declare_generated_files").getImmutableList();
+    } catch (EvalException e) {
+      throw new RuleErrorException(e.getMessageWithStack());
+    }
+  }
+
   public static void compile(
       RuleContext ruleContext,
       ConfiguredTarget protoTarget,
diff --git a/src/main/starlark/builtins_bzl/common/exports.bzl b/src/main/starlark/builtins_bzl/common/exports.bzl
index 11d0a0a..1b1a52e 100755
--- a/src/main/starlark/builtins_bzl/common/exports.bzl
+++ b/src/main/starlark/builtins_bzl/common/exports.bzl
@@ -60,6 +60,7 @@
 exported_to_java = {
     "register_compile_and_archive_actions_for_j2objc": compilation_support.register_compile_and_archive_actions_for_j2objc,
     "proto_common_compile": proto_common_do_not_use.compile,
+    "proto_common_declare_generated_files": proto_common_do_not_use.declare_generated_files,
     "proto_common_experimental_should_generate_code": proto_common_do_not_use.experimental_should_generate_code,
     "proto_common_experimental_filter_sources": proto_common_do_not_use.experimental_filter_sources,
     "link_multi_arch_static_library": linking_support.link_multi_arch_static_library,