diff --git a/compiler/crates/relay-compiler/src/artifact_content/content.rs b/compiler/crates/relay-compiler/src/artifact_content/content.rs
index a3f49b408a2fa..ab4446e3d4aa1 100644
--- a/compiler/crates/relay-compiler/src/artifact_content/content.rs
+++ b/compiler/crates/relay-compiler/src/artifact_content/content.rs
@@ -194,7 +194,7 @@ pub fn generate_updatable_query(
     // -- Begin Types Section --
     let mut section = GenericSection::default();
     let generated_types =
-        ArtifactGeneratedTypes::from_updatable_query(typegen_operation, skip_types);
+        ArtifactGeneratedTypes::from_updatable_query(typegen_operation, skip_types, project_config.typegen_config.language);
 
     if project_config.typegen_config.language == TypegenLanguage::Flow {
         writeln!(section, "/*::")?;
@@ -358,6 +358,7 @@ pub fn generate_operation(
         typegen_operation,
         skip_types,
         request_parameters.is_client_request(),
+        project_config.typegen_config.language
     );
 
     if project_config.typegen_config.language == TypegenLanguage::Flow {
@@ -687,7 +688,7 @@ fn generate_read_only_fragment(
 
     // -- Begin Types Section --
     let mut section = GenericSection::default();
-    let generated_types = ArtifactGeneratedTypes::from_fragment(typegen_fragment, skip_types);
+    let generated_types = ArtifactGeneratedTypes::from_fragment(typegen_fragment, skip_types, project_config.typegen_config.language);
 
     if project_config.typegen_config.language == TypegenLanguage::Flow {
         writeln!(section, "/*::")?;
diff --git a/compiler/crates/relay-compiler/src/build_project/artifact_generated_types.rs b/compiler/crates/relay-compiler/src/build_project/artifact_generated_types.rs
index 3152d2eb87bcc..696d54a871c16 100644
--- a/compiler/crates/relay-compiler/src/build_project/artifact_generated_types.rs
+++ b/compiler/crates/relay-compiler/src/build_project/artifact_generated_types.rs
@@ -9,11 +9,13 @@ use common::NamedItem;
 use graphql_ir::FragmentDefinition;
 use graphql_ir::OperationDefinition;
 use graphql_syntax::OperationKind;
+use relay_config::TypegenLanguage;
 use relay_transforms::RefetchableMetadata;
 use relay_transforms::INLINE_DIRECTIVE_NAME;
 use relay_transforms::UPDATABLE_DIRECTIVE;
 use relay_typegen::has_raw_response_type_directive;
 
+
 /// Specifies the imported and exported generated types of an
 /// artifact.
 pub struct ArtifactGeneratedTypes {
@@ -27,8 +29,9 @@ impl ArtifactGeneratedTypes {
         operation: &OperationDefinition,
         skip_types: bool,
         is_client_only: bool,
+        language: TypegenLanguage,
     ) -> Self {
-        if skip_types {
+        if skip_types || language == TypegenLanguage::TypeScript {
             Self {
                 imported_types: "ConcreteRequest",
                 ast_type: "ConcreteRequest",
@@ -80,8 +83,8 @@ impl ArtifactGeneratedTypes {
         }
     }
 
-    pub fn from_updatable_query(typegen_operation: &OperationDefinition, skip_types: bool) -> Self {
-        if skip_types {
+    pub fn from_updatable_query(typegen_operation: &OperationDefinition, skip_types: bool, language: TypegenLanguage) -> Self {
+        if skip_types || language == TypegenLanguage::TypeScript {
             Self {
                 imported_types: "ConcreteUpdatableQuery",
                 ast_type: "ConcreteUpdatableQuery",
@@ -100,11 +103,11 @@ impl ArtifactGeneratedTypes {
         }
     }
 
-    pub fn from_fragment(fragment: &FragmentDefinition, skip_types: bool) -> Self {
+    pub fn from_fragment(fragment: &FragmentDefinition, skip_types: bool, language: TypegenLanguage) -> Self {
         let is_inline_data_fragment = fragment.directives.named(*INLINE_DIRECTIVE_NAME).is_some();
         let is_updatable_fragment = fragment.directives.named(*UPDATABLE_DIRECTIVE).is_some();
 
-        if skip_types {
+        if skip_types || language == TypegenLanguage::TypeScript {
             if is_inline_data_fragment {
                 Self {
                     imported_types: "ReaderInlineDataFragment",
diff --git a/compiler/crates/relay-compiler/tests/relay_compiler_integration/fixtures/fragment_arguments.expected b/compiler/crates/relay-compiler/tests/relay_compiler_integration/fixtures/fragment_arguments.expected
index f7281490fa873..20b9db33fed92 100644
--- a/compiler/crates/relay-compiler/tests/relay_compiler_integration/fixtures/fragment_arguments.expected
+++ b/compiler/crates/relay-compiler/tests/relay_compiler_integration/fixtures/fragment_arguments.expected
@@ -39,7 +39,7 @@ type Post {
 ==================================== OUTPUT ===================================
 //- __generated__/foo.graphql.ts
 /**
- * <auto-generated> SignedSource<<0e503f5c200310a5580a2b4853a499ce>>
+ * <auto-generated> SignedSource<<fbfb0da0e84763fffee1d191d9a7f6c4>>
  * @lightSyntaxTransform
  * @nogrep
  */
@@ -48,7 +48,7 @@ type Post {
 /* eslint-disable */
 // @ts-nocheck
 
-import { Fragment, ReaderFragment } from 'relay-runtime';
+import { ReaderFragment } from 'relay-runtime';
 import { FragmentRefs } from "relay-runtime";
 export type foo$data = {
   readonly posts: ReadonlyArray<{
@@ -108,7 +108,7 @@ export default node;
 
 //- __generated__/fooQuery.graphql.ts
 /**
- * <auto-generated> SignedSource<<20043d1d00f946a33727d27907f7f3f2>>
+ * <auto-generated> SignedSource<<119739ea84b9bdf74d937309d38abba4>>
  * @lightSyntaxTransform
  * @nogrep
  */
@@ -117,7 +117,7 @@ export default node;
 /* eslint-disable */
 // @ts-nocheck
 
-import { ConcreteRequest, Query } from 'relay-runtime';
+import { ConcreteRequest } from 'relay-runtime';
 import { FragmentRefs } from "relay-runtime";
 export type fooQuery$variables = Record<PropertyKey, never>;
 export type fooQuery$data = {
diff --git a/compiler/crates/relay-compiler/tests/relay_compiler_integration/fixtures/preloadable_query_typescript.expected b/compiler/crates/relay-compiler/tests/relay_compiler_integration/fixtures/preloadable_query_typescript.expected
index e5fe00c999739..40e6cf9c1f716 100644
--- a/compiler/crates/relay-compiler/tests/relay_compiler_integration/fixtures/preloadable_query_typescript.expected
+++ b/compiler/crates/relay-compiler/tests/relay_compiler_integration/fixtures/preloadable_query_typescript.expected
@@ -53,7 +53,7 @@ export default node;
 
 //- __generated__/fooQuery.graphql.ts
 /**
- * <auto-generated> SignedSource<<461989c03655ebfecf253b741f65ef91>>
+ * <auto-generated> SignedSource<<fb8fb1474f3e44f8818e0d2fb6490eae>>
  * @relayHash ae6874c86ce5db2df8d6b253a6a0ec13
  * @lightSyntaxTransform
  * @nogrep
@@ -65,7 +65,7 @@ export default node;
 
 // @relayRequestID ae6874c86ce5db2df8d6b253a6a0ec13
 
-import { ConcreteRequest, Query } from 'relay-runtime';
+import { ConcreteRequest } from 'relay-runtime';
 export type fooQuery$variables = Record<PropertyKey, never>;
 export type fooQuery$data = {
   readonly userName: string | null | undefined;
diff --git a/compiler/crates/relay-compiler/tests/relay_compiler_integration/fixtures/simple_fragment.expected b/compiler/crates/relay-compiler/tests/relay_compiler_integration/fixtures/simple_fragment.expected
index 67dd12c461485..654909e8ee446 100644
--- a/compiler/crates/relay-compiler/tests/relay_compiler_integration/fixtures/simple_fragment.expected
+++ b/compiler/crates/relay-compiler/tests/relay_compiler_integration/fixtures/simple_fragment.expected
@@ -17,7 +17,7 @@ type User { name: String }
 ==================================== OUTPUT ===================================
 //- __generated__/foo.graphql.ts
 /**
- * <auto-generated> SignedSource<<b8a79927acf6eb285be2d05e7d209ab8>>
+ * <auto-generated> SignedSource<<d2b6a2fbf057fd52d8aa0869bcccbe8e>>
  * @lightSyntaxTransform
  * @nogrep
  */
@@ -26,7 +26,7 @@ type User { name: String }
 /* eslint-disable */
 // @ts-nocheck
 
-import { Fragment, ReaderFragment } from 'relay-runtime';
+import { ReaderFragment } from 'relay-runtime';
 import { FragmentRefs } from "relay-runtime";
 export type foo$data = {
   readonly name: string | null | undefined;
diff --git a/compiler/crates/relay-compiler/tests/relay_compiler_integration/fixtures/typescript_resolver_type_import.expected b/compiler/crates/relay-compiler/tests/relay_compiler_integration/fixtures/typescript_resolver_type_import.expected
index e8c1d60403663..ce9b7fbc62a57 100644
--- a/compiler/crates/relay-compiler/tests/relay_compiler_integration/fixtures/typescript_resolver_type_import.expected
+++ b/compiler/crates/relay-compiler/tests/relay_compiler_integration/fixtures/typescript_resolver_type_import.expected
@@ -25,7 +25,7 @@ type User { name: String }
 ==================================== OUTPUT ===================================
 //- __generated__/barFragment.graphql.ts
 /**
- * <auto-generated> SignedSource<<6c58dff465555ee63fe212edde3a3e01>>
+ * <auto-generated> SignedSource<<f592d795251b0c88f6e5456bd47a8d10>>
  * @lightSyntaxTransform
  * @nogrep
  */
@@ -34,7 +34,7 @@ type User { name: String }
 /* eslint-disable */
 // @ts-nocheck
 
-import { Fragment, ReaderFragment } from 'relay-runtime';
+import { ReaderFragment } from 'relay-runtime';
 import { FragmentRefs } from "relay-runtime";
 import { foo as userFooResolverType } from "../foo";
 export type barFragment$data = {