import { ExtractClassType } from '@deepkit/core'; import { ClassType } from '@deepkit/core'; import { AbstractClassType } from '@deepkit/core'; type UnionToIntersection = (T extends any ? (x: T) => any : never) extends (x: infer R) => any ? R : never; /** * Function to mixin multiple classes together and create a new class, which can be extended from. * * The first entry of the mixin() call will be used as base class. * * @example * ```typescript * * class Timestampable { * createdAt: Date = new Date; * updatedAt: Date = new Date; * } * * class SoftDeleted { * deletedAt?: Date; * deletedBy?: string; * } * * class User extends mixin(Timestampable, SoftDeleted) { * id: number = 0; * constructor(public username: string) {} * } * ``` */ export declare function mixin(...classTypes: T): ClassType>>; export {};