import { Constructor } from './Constructor.js'; import { ConstructorStatics } from './ConstructorStatics.js'; import { a as DefaultObject } from './chunks/CV1DT9yO.js'; import { UnionMerge } from './UnionMerge.js'; import './OmitNever.js'; import './Pretty.js'; import './Function.js'; import './chunks/CM89_aaq.js'; import './BooleanNor.js'; import './BooleanNot.js'; import './BooleanOr.js'; import './Tuple.js'; import './chunks/DZEfmVOc.js'; import './BooleanAnd.js'; import './MaybeReadonly.js'; import './TupleLength.js'; import './DefaultValue.js'; import './Nil.js'; /** * Extends one class with another. The first class will be extended with the * second class. Meaning that the first class will override the second class. * * @template T1 The class to extend. * @template T2 The class to extend with. * @returns A new class that extends both classes. * @example * class A { a = 1, c = 3 } * class B { b = 2, c = '3' } * type C = Extends // { a: number; b: number; c: number; } */ type Extends = Constructor, InstanceType, 0>>, ConstructorParameters, UnionMerge, ConstructorStatics, 0>>>; export type { Extends };