=== /a.ts ===
class A { a!: string }
>A : A
>a : string

export type { A as default };
>A : typeof A
>default : A

=== /b.ts ===
import A from './a';
>A : typeof A

import type { default as B } from './a';
>default : typeof A
>B : A

export { A, B };
>A : typeof A
>B : typeof A

=== /c.ts ===
import * as types from './b';
>types : typeof types

export { types as default };
>types : typeof types
>default : typeof types

=== /d.ts ===
import types from './c';
>types : typeof types

new types.A();
>new types.A() : any
>types.A : any
>types : typeof types
>A : any

new types.B();
>new types.B() : any
>types.B : any
>types : typeof types
>B : any

const a: types.A = {};
>a : types.A
>types : any
>{} : {}

const b: types.B = {};
>b : types.A
>types : any
>{} : {}

