## The Problem Mixin does not allow the use of `protected` and `private` with property/method ## The Solution 1. Change them with `public` and a `_` prefix? 2. Provide a `PuppetInterface` by defining a `ProtectedMethods` type to calculate from `Omit<Puppet, ProtectedMethods>` ## Links - [SO: Why do they say "may not" for things which people shouldn't do](https://english.stackexchange.com/a/189975/235086) - [SO: Typescript allows to use proper multiple inheritances with mixins, but fails to create declaration files](https://stackoverflow.com/a/55242560/1123955) - https://github.com/microsoft/TypeScript/issues/17744#issuecomment-558990381 - #156