# TSR1102: Shorthand ambient module '…' makes every import 'any'. Declare its types in a '.d.ts' file.

> A shorthand 'declare module "x";' in a sound file makes every import from it 'any'. Declare the module's types in a .d.ts file.

## What it means

`declare module "x";` without a body types every import from `x` as `any`. In a sound file that is reported at the module name.

## Example

```ts
// A script file (no imports or exports, on purpose) declaring a wildcard shorthand module.
declare module "tsr-fixture-assets-*"; // @expect TSR1102
```

## How to fix

- Declare the module's real types in a `.d.ts` file.
- Move the shorthand declaration to a `.d.ts` file if you accept the untyped boundary; the package is then treated as `loose` and listed in the report.

Sound mode is defined in [design record 0007](https://github.com/Webb-Ventures/typescript-rust/blob/main/docs/design/0007-sound-mode.md) (accepted 2026-10-15).

Source: https://ts-r.dev/errors/TSR1102/
