holy fuck this is valid and works
```ts
import * as Foo from './foo.js'
type Foo = { foo: number }
export { Foo }
```
(i.e. when importing Foo it will work both as a type and a namespace, depending on the context)
i knew it would work with normal `export const`-s, but totally didnt expect it would work with esm namespaces
this way i can probably make truly tree-shakeable classes ^^
they won't actually be classes anymore, but the outside dx would largely be the same. except all "methods" would have to be "static" and accept the instance in the first argument instead of `this`, and new/instanceof would have to be implemented as "static methods" too.
...except i would lose the minify-ability of private fields, but whatever tbh, gzip will take care of that