diff --git a/src/model/model.ts b/src/model/model.ts index 4c3b3d4..fc1d5bb 100644 --- a/src/model/model.ts +++ b/src/model/model.ts @@ -584,6 +584,19 @@ export class ModelManager< } } +/** + * A model manager extension is a mixin, building a new model manager class with extended capabilities. + * @see https://www.typescriptlang.org/docs/handbook/mixins.html + */ +export type ModelManagerExtension< + Extension extends object, + T extends object, + Shape extends ModelShape, + Identifier extends IdentifierDefinition, +> = ( + modelManager: ModelManager, +) => ModelManager & Extension; + /** * Define a new model. * @param definition The model definition object.