diff --git a/.changeset/selfish-tools-prove.md b/.changeset/selfish-tools-prove.md
new file mode 100644
index 000000000000..b2f05672fe83
--- /dev/null
+++ b/.changeset/selfish-tools-prove.md
@@ -0,0 +1,5 @@
+---
+'create-svelte': minor
+---
+
+fix: adjust `app.d.ts` to diminish confusion about imports
diff --git a/packages/create-svelte/templates/default/src/app.d.ts b/packages/create-svelte/templates/default/src/app.d.ts
index 26a9569bc40a..c760990a89d6 100644
--- a/packages/create-svelte/templates/default/src/app.d.ts
+++ b/packages/create-svelte/templates/default/src/app.d.ts
@@ -1,9 +1,13 @@
// See https://kit.svelte.dev/docs/types#app
// for information about these interfaces
// and what to do when importing types
-declare namespace App {
- // interface Error {}
- // interface Locals {}
- // interface PageData {}
- // interface Platform {}
+declare global {
+ namespace App {
+ // interface Error {}
+ // interface Locals {}
+ // interface PageData {}
+ // interface Platform {}
+ }
}
+
+export {};
diff --git a/packages/create-svelte/templates/skeleton/src/app.d.ts b/packages/create-svelte/templates/skeleton/src/app.d.ts
index 26a9569bc40a..c760990a89d6 100644
--- a/packages/create-svelte/templates/skeleton/src/app.d.ts
+++ b/packages/create-svelte/templates/skeleton/src/app.d.ts
@@ -1,9 +1,13 @@
// See https://kit.svelte.dev/docs/types#app
// for information about these interfaces
// and what to do when importing types
-declare namespace App {
- // interface Error {}
- // interface Locals {}
- // interface PageData {}
- // interface Platform {}
+declare global {
+ namespace App {
+ // interface Error {}
+ // interface Locals {}
+ // interface PageData {}
+ // interface Platform {}
+ }
}
+
+export {};
diff --git a/packages/create-svelte/templates/skeletonlib/src/app.d.ts b/packages/create-svelte/templates/skeletonlib/src/app.d.ts
index b9091cd1c51d..c760990a89d6 100644
--- a/packages/create-svelte/templates/skeletonlib/src/app.d.ts
+++ b/packages/create-svelte/templates/skeletonlib/src/app.d.ts
@@ -1,11 +1,13 @@
-///
-
// See https://kit.svelte.dev/docs/types#app
// for information about these interfaces
// and what to do when importing types
-declare namespace App {
- // interface Error {}
- // interface Locals {}
- // interface PageData {}
- // interface Platform {}
+declare global {
+ namespace App {
+ // interface Error {}
+ // interface Locals {}
+ // interface PageData {}
+ // interface Platform {}
+ }
}
+
+export {};
diff --git a/packages/kit/types/ambient.d.ts b/packages/kit/types/ambient.d.ts
index a8bd4cf9fc06..f781c274dcaa 100644
--- a/packages/kit/types/ambient.d.ts
+++ b/packages/kit/types/ambient.d.ts
@@ -2,41 +2,19 @@
* It's possible to tell SvelteKit how to type objects inside your app by declaring the `App` namespace. By default, a new project will have a file called `src/app.d.ts` containing the following:
*
* ```ts
- * ///
- *
- * declare namespace App {
- * interface Error {}
- * interface Locals {}
- * interface PageData {}
- * interface Platform {}
- * }
- * ```
- *
- * By populating these interfaces, you will gain type safety when using `event.locals`, `event.platform`, and `data` from `load` functions.
- *
- * Note that since it's an ambient declaration file, you have to be careful when using `import` statements. Once you add an `import`
- * at the top level, the declaration file is no longer considered ambient and you lose access to these typings in other files.
- * To avoid this, either use the `import(...)` function:
- *
- * ```ts
- * interface Locals {
- * user: import('$lib/types').User;
- * }
- * ```
- * Or wrap the namespace with `declare global`:
- * ```ts
- * import { User } from '$lib/types';
- *
* declare global {
* namespace App {
- * interface Locals {
- * user: User;
- * }
- * // ...
+ * // interface Error {}
+ * // interface Locals {}
+ * // interface PageData {}
+ * // interface Platform {}
* }
* }
+ *
+ * export default undefined;
* ```
*
+ * By populating these interfaces, you will gain type safety when using `event.locals`, `event.platform`, and `data` from `load` functions.
*/
declare namespace App {
/**