diff --git a/src/Trait.ts b/src/Trait.ts index 8e0d198..6d91e3b 100644 --- a/src/Trait.ts +++ b/src/Trait.ts @@ -1,7 +1,7 @@ -import { Fn } from "hotscript" +import { Fn, Pipe, Tuples } from "hotscript" import { AbstractClass, Class, Opaque } from "type-fest" import { AbstractTag, TraitExpression, emptyTraitExpression } from "." -import { StaticMembers } from "./util" +import { ExtendFn, SimplifyFn, StaticMembers } from "./util" export type AddAbstractToImplClass< @@ -104,6 +104,26 @@ export namespace Trait { export interface SupertraitsFn extends Fn { return: Trait.Supertraits } + + export type Class = ( + AbstractClass< + Trait.Instance, + any[] + > & + Pipe, [ + Tuples.Map, + ExtendFn, + SimplifyFn, + ]> + ) + + export type Instance = ( + Pipe, [ + Tuples.Map, + ExtendFn, + SimplifyFn, + ]> + ) }