diff --git a/examples/BUILD.bazel b/examples/BUILD.bazel
index db5bf95..0698c13 100644
--- a/examples/BUILD.bazel
+++ b/examples/BUILD.bazel
@@ -23,12 +23,12 @@
 
 ts_library(
     name = "foo_ts_library",
-    srcs = [
-        "foo.ts",
-        ":types",
-    ],
+    srcs = ["foo.ts"],
     tsconfig = ":tsconfig.json",
-    deps = ["//examples/generated_ts"],
+    deps = [
+        ":types",
+        "//examples/generated_ts",
+    ],
 )
 
 ts_library(
diff --git a/internal/common/compilation.bzl b/internal/common/compilation.bzl
index 82b86af..db333d5 100644
--- a/internal/common/compilation.bzl
+++ b/internal/common/compilation.bzl
@@ -118,18 +118,24 @@
     workspace_segments = label.workspace_root.split("/") if label.workspace_root else []
     package_segments = label.package.split("/") if label.package else []
     trim = len(workspace_segments) + len(package_segments)
+    create_shim_files = False
+
     closure_js_files = []
     devmode_js_files = []
     declaration_files = []
     for input_file in ctx.files.srcs:
-        if (input_file.short_path.endswith(".d.ts")):
+        is_dts = input_file.short_path.endswith(".d.ts")
+        if is_dts and not create_shim_files:
             continue
         basename = "/".join(input_file.short_path.split("/")[trim:])
-        dot = basename.rfind(".")
-        basename = basename[:dot]
+        for ext in [".d.ts", ".tsx", ".ts"]:
+            if basename.endswith(ext):
+                basename = basename[:-len(ext)]
+                break
         closure_js_files += [ctx.new_file(basename + ".closure.js")]
-        devmode_js_files += [ctx.new_file(basename + ".js")]
-        declaration_files += [ctx.new_file(basename + ".d.ts")]
+        if not is_dts:
+            devmode_js_files += [ctx.new_file(basename + ".js")]
+            declaration_files += [ctx.new_file(basename + ".d.ts")]
     return struct(
         closure_js = closure_js_files,
         devmode_js = devmode_js_files,
diff --git a/internal/tsc_wrapped/compiler_host.ts b/internal/tsc_wrapped/compiler_host.ts
index 3b238c0..a29f668 100644
--- a/internal/tsc_wrapped/compiler_host.ts
+++ b/internal/tsc_wrapped/compiler_host.ts
@@ -79,6 +79,7 @@
   transformTypesToClosure: boolean;
   addDtsClutzAliases: boolean;
   isJsTranspilation: boolean;
+  provideExternalModuleDtsNamespace: boolean;
   options: BazelTsOptions;
   host: ts.ModuleResolutionHost = this;
 
@@ -122,6 +123,7 @@
     this.transformTypesToClosure = bazelOpts.tsickle;
     this.addDtsClutzAliases = bazelOpts.addDtsClutzAliases;
     this.isJsTranspilation = Boolean(bazelOpts.isJsTranspilation);
+    this.provideExternalModuleDtsNamespace = !bazelOpts.hasImplementation;
   }
 
   /**
diff --git a/internal/tsc_wrapped/tsconfig.ts b/internal/tsc_wrapped/tsconfig.ts
index 30961fb..6f96b86 100644
--- a/internal/tsc_wrapped/tsconfig.ts
+++ b/internal/tsc_wrapped/tsconfig.ts
@@ -150,6 +150,12 @@
    * be written. Ignored if isJsTranspilation is false.
    */
   transpiledJsOutputFileName?: string;
+
+  /**
+   * Whether the user provided an implementation shim for .d.ts files in the
+   * compilation unit.
+   */
+  hasImplementation?: boolean;
 }
 
 export interface ParsedTsConfig {
