Correct way to extend a Characteristic?
What is the correct way to extend a Characteristic in a plugin?

I'm aware that such custom characteristics will only be exposed in apps like Eve and not Apple's Home app.

Code: 

```
import { Characteristic, Formats, Perms } from 'hap-nodejs';

export default class LightPattern extends Characteristic {

  static readonly UUID = '0EF49D24-1C87-4ACE-AD74-5832A7E03931';

  constructor() {
    super('Light Pattern', LightPattern.UUID, {
      format: Formats.UINT8,
      perms: [Perms.PAIRED_READ, Perms.PAIRED_WRITE],
      minStep: 1,
      minValue: 0,
      // We'll set maxValue dynamically in the platform accessory.
    });
  }
}
```

Which works fine in a development environment (via `npm run watch`), but fails when installed via a published artifact:

```
Mar 12 10:37:00 server homebridge[3289392]: [3/12/2021, 10:37:00 AM] ====================
Mar 12 10:37:00 server homebridge[3289392]: [3/12/2021, 10:37:00 AM] ERROR LOADING PLUGIN homebridge-pixelblaze:
Mar 12 10:37:00 server homebridge[3289392]: [3/12/2021, 10:37:00 AM] Error: Cannot find module 'hap-nodejs/dist/lib/Characteristic'
Mar 12 10:37:00 server homebridge[3289392]: Require stack:
Mar 12 10:37:00 server homebridge[3289392]: - /usr/lib/node_modules/homebridge-pixelblaze/dist/lib/patterns.js
Mar 12 10:37:00 server homebridge[3289392]: - /usr/lib/node_modules/homebridge-pixelblaze/dist/platformAccessory.js
Mar 12 10:37:00 server homebridge[3289392]: - /usr/lib/node_modules/homebridge-pixelblaze/dist/platform.js
Mar 12 10:37:00 server homebridge[3289392]: - /usr/lib/node_modules/homebridge-pixelblaze/dist/index.js
Mar 12 10:37:00 server homebridge[3289392]: - /usr/lib/node_modules/homebridge/lib/plugin.js
Mar 12 10:37:00 server homebridge[3289392]: - /usr/lib/node_modules/homebridge/lib/pluginManager.js
Mar 12 10:37:00 server homebridge[3289392]: - /usr/lib/node_modules/homebridge/lib/server.js
Mar 12 10:37:00 server homebridge[3289392]: - /usr/lib/node_modules/homebridge/lib/cli.js
Mar 12 10:37:00 server homebridge[3289392]: - /usr/lib/node_modules/homebridge/bin/homebridge
Mar 12 10:37:00 server homebridge[3289392]:     at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)
Mar 12 10:37:00 server homebridge[3289392]:     at Function.Module._load (internal/modules/cjs/loader.js:725:27)
Mar 12 10:37:00 server homebridge[3289392]:     at Module.require (internal/modules/cjs/loader.js:952:19)
Mar 12 10:37:00 server homebridge[3289392]:     at require (internal/modules/cjs/helpers.js:88:18)
Mar 12 10:37:00 server homebridge[3289392]:     at Object.<anonymous> (/usr/lib/node_modules/homebridge-pixelblaze/src/lib/patterns.ts:1:1)
Mar 12 10:37:00 server homebridge[3289392]:     at Module._compile (internal/modules/cjs/loader.js:1063:30)
Mar 12 10:37:00 server homebridge[3289392]:     at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
Mar 12 10:37:00 server homebridge[3289392]:     at Module.load (internal/modules/cjs/loader.js:928:32)
Mar 12 10:37:00 server homebridge[3289392]:     at Function.Module._load (internal/modules/cjs/loader.js:769:14)
Mar 12 10:37:00 server homebridge[3289392]:     at Module.require (internal/modules/cjs/loader.js:952:19)
Mar 12 10:37:00 server homebridge[3289392]: [3/12/2021, 10:37:00 AM] ====================
```

If I attempt to add `hap-nodejs` as a runtime dependency, then this error is thrown in development mode:

```
src/lib/patterns.ts:1:48 - error TS2307: Cannot find module 'hap-nodejs' or its corresponding type declarations.

1 import { Characteristic, Formats, Perms } from 'hap-nodejs';
                                                 ~~~~~~~~~~~~

src/platformAccessory.ts:58:41 - error TS2769: No overload matches this call.
  Overload 1 of 2, '(constructor: WithUUID<new () => Characteristic>): Characteristic', gave the following error.
    Argument of type 'typeof LightPattern' is not assignable to parameter of type 'WithUUID<new () => Characteristic>'.
      Types of construct signatures are incompatible.
        Type 'new () => LightPattern' is not assignable to type 'new () => Characteristic'.
          Type 'LightPattern' is missing the following properties from type 'Characteristic': on, emit, displayName, UUID, and 42 more.
  Overload 2 of 2, '(name: string | WithUUID<new () => Characteristic>): Characteristic | undefined', gave the following error.
    Argument of type 'typeof LightPattern' is not assignable to parameter of type 'string | WithUUID<new () => Characteristic>'.
      Type 'typeof LightPattern' is not assignable to type 'WithUUID<new () => Characteristic>'.
        Types of construct signatures are incompatible.
          Type 'new () => LightPattern' is not assignable to type 'new () => Characteristic'.
            Type 'LightPattern' is not assignable to type 'Characteristic'.
```

I can't import from the homebridge module itself, as these symbols are exposed as 'types' from what I can gather which isn't allowed anymore.

I'm new to Typescript, so my apologies if I've overlooked something obvious here.

Homebridge version: 1.3.3

Thanks