TypeScript ambientdeklarationer och .d.ts


I TypeScript-dokumentationen om .d.ts-deklarationsfiler verkar alla funktionssignaturer och gränssnitt med mera vara exporterade. Jag är dock bekant med konceptet med ambienta deklarationer i filer utan import eller export, och har i stort sett gjort det som beskrivs i detta StackOverflow-svar för projekt. I mitt fall har jag dock inte använt .d.ts, bara .ts, och det verkar fungera som jag tänkt. Jag har bara en .ts-fil i roten av mitt projekt med en massa gränssnitt och typer som bara ser ut så här

interface BuildContext {
    selectedBuild: import('./classes/build').Build
    setSelectedBuild: (buildId: number) => void
    modifySelectedBuild: (build: import('./classes/build').Build) => void
}

type StatData = {
    statId: number,
    statName: string,
    alias: string | null
}

Att göra importer på det sättet förklarades i svaret jag länkade ovan som ett sätt att hålla deklarationerna ambienta samtidigt som man får åtkomst till definitioner i andra filer. Förutom dessa inline-importer finns det inga importer eller exporter, och jag verkar inte ha några problem. Är .d-delen av .d.ts helt enkelt en namngivningskonvention, eller har den något syfte som jag inte förstår?

Min tsconfig.json om det spelar någon roll:

{
  "compilerOptions": {
    "outDir": "./dist/",
    "noImplicitAny": true,
    "module": "es6",
    "target": "es5",
    "jsx": "react",
    "allowJs": true,
    "moduleResolution": "node",
    "allowSyntheticDefaultImports": true,
    "esModuleInterop": true,
    "resolveJsonModule": true
  }
}