Distribute TypeScript definitions for existing Javascript library

I’ve been asked to gradually add TypeScript type definitions for an existing package written in JavaScript and owned by us. It is built with rollup.

The library is organised as follows:

MyLib
|----/backend
|    |----index.js
|    |----index.js.map
|    
|----/frontend
|    |----index.js
|    |----index.js.map
|    
|----/lib
|    |----index.js
|    |----index.js.map
|
|----/src
|    |----index.js
|    |----common.js
|    |----be.js
|    |----fe.js
|    |----/components
|    |    |----ComponentA.js
|    |----/services
|    |    |----/nestErrorExceptions
|    |    |    |----index.js
|    |    |    |----ResultNotFoundException.js
|    |    |----/slugify
|    |    |    |----index.js
|
|----package.json
|
|----rollup.config.js
|
|----etc...
// src/index.js
module.exports = {
  ...(process.env.PLATFORM === 'BACKEND'
    ? require('../backend')
    : process.env.PLATFORM === 'FRONTEND' ? require('../frontend') : {})
}
// src/common.js
import slugify from './services/slugify'

export default {
  slugify,
}
// src/be.js
import common from './common'
import NestErrorExceptions from './services/nestErrorExceptions'

export default {
  ...common,
  NestErrorExceptions,
}
// src/fe.js
import common from './common'
import ComponentA from './components/ComponentA'

export default {
  ...common,
  ComponentA,
}

It is built with the following rollup config:

// rollup.config.js
import resolve from '@rollup/plugin-node-resolve'
import commonjs from '@rollup/plugin-commonjs'
import json from '@rollup/plugin-json'
import { babel } from '@rollup/plugin-babel'
import { terser } from 'rollup-plugin-terser'

import pkg from './package.json'

export default [
  {
    input: 'src/fe.js',
    output: {
      name: 'my-lib-fe',
      dir: 'frontend',
      entryFileNames: 'index.js',
      format: 'umd',
      sourcemap: true
    },
    plugins: [
      resolve(),
      json(),
      babel({ babelHelpers: 'bundled', exclude: 'node_modules/**' }),
      commonjs(),
      terser()
    ]
  },
  {
    input: 'src/be.js',
    output: {
      dir: 'backend',
      entryFileNames: 'index.js',
      format: 'cjs',
      exports: 'default',
      sourcemap: true
    },
    plugins: [
      // resolve(), // not to resolve nestjs
      json(),
      babel({ babelHelpers: 'bundled', exclude: 'node_modules/**' }),
      commonjs(),
      terser()
    ]
  },
  {
    input: 'src/index.js',
    output: {
      name: 'my-lib',
      dir: pkg.main, // 'lib'
      format: 'cjs',
      sourcemap: true
    },
    plugins: [
      json(),
      babel({ babelHelpers: 'bundled', exclude: 'node_modules/**' }),
      terser()
    ]
  },
]

I’ve written some .d.ts files along side, such as src/services/nestErrorExceptions/ResultNotFoundException.d.ts

MyLib
|----/backend
|    |----index.js
|    |----index.js.map
|    
|----/frontend
|    |----index.js
|    |----index.js.map
|    
|----/lib
|    |----index.js
|    |----index.js.map
|
|----/src
|    |----index.js
|    |----common.js
|    |----be.js
|    |----fe.js
|    |----/components
|    |    |----ComponentA.js
|    |----/services
|    |    |----/nestErrorExceptions
|    |    |    |----index.js
|    |    |    |----ResultNotFoundException.js
|    |    |    |----ResultNotFoundException.d.ts
|    |    |----/slugify
|    |    |    |----index.js
|
|----package.json
|
|----rollup.config.js
|
|----etc...
// src/services/nestErrorExceptions/ResultNotFoundException.d.ts
import { HttpException } from '@nestjs/common'

export declare class ResultNotFoundException extends HttpException {
  constructor(location: string, err: unknown)
}

Now how can I configure rollup (or some plugin) to take those definitions and bring them (eventually merged?) into the lib / backend / frontend directory?