Currently, users generating TypeScript declarations as part of compilation always get a file where the wasm module's main type is named MainModule. One consequence of this is that users generating packages directly from the TSD and wasm/js output wind up with name collisions, if they import multiple modules into another project. Working around this is not difficult (shown below) but it does betray the fact that, at the time of writing, wasm module type names are hard-coded to be MainModule.
import { MainModule as MyModule1 } from "my-package-1"; // Must use "as" to prevent name collision
import { MainModule as MyModule2 } from "my-package-2";
Further, users can specify names using -s EXPORT_NAME=MyModule (though this isn't always 1:1 with what we'd want to call the module's type), so having an output type name of MainModule can be confusing to users.
Per a conversation in #21460, and #20296, align TSD generation with EXPORT_NAME or a new setting e.g. MODULE_NAME, so that users can set this name automatically.