import { Constructor } from '../../../interfaces/classes';
import { PickByValueType } from '../../../interfaces/common';
export declare function applyMixinsMethodInheritance<C extends Constructor, C1 extends Constructor, C2 extends Constructor>(DerivedCtor: C, constructors: [C1, C2]): Constructor<InstanceType<C> & PickByValueType<InstanceType<C1>, Function> & PickByValueType<InstanceType<C2>, Function>, ConstructorParameters<C>>;
export declare function applyMixinsMethodInheritance<C extends Constructor, C1 extends Constructor, C2 extends Constructor, C3 extends Constructor>(DerivedCtor: C, constructors: [C1, C2, C3]): Constructor<InstanceType<C> & PickByValueType<InstanceType<C1>, Function> & PickByValueType<InstanceType<C2>, Function> & PickByValueType<InstanceType<C3>, Function>, ConstructorParameters<C>>;
export declare function applyMixinsMethodInheritance<C extends Constructor, C1 extends Constructor, C2 extends Constructor, C3 extends Constructor, C4 extends Constructor>(DerivedCtor: C, constructors: [C1, C2, C3, C4]): Constructor<InstanceType<C> & PickByValueType<InstanceType<C1>, Function> & PickByValueType<InstanceType<C2>, Function> & PickByValueType<InstanceType<C3>, Function> & PickByValueType<InstanceType<C4>, Function>, ConstructorParameters<C>>;
export declare function applyMixinsMethodInheritance<C extends Constructor, C1 extends Constructor, C2 extends Constructor, C3 extends Constructor, C4 extends Constructor, C5 extends Constructor>(DerivedCtor: C, constructors: [C1, C2, C3, C4, C5]): Constructor<InstanceType<C> & PickByValueType<InstanceType<C1>, Function> & PickByValueType<InstanceType<C2>, Function> & PickByValueType<InstanceType<C3>, Function> & PickByValueType<InstanceType<C4>, Function> & PickByValueType<InstanceType<C5>, Function>, ConstructorParameters<C>>;
export declare function applyMixinsPropsAndMethodsInheritance<C1 extends Constructor, C2 extends Constructor>(ctor1: C1, ctor2: C2): Constructor<InstanceType<C2> & InstanceType<C1>, ConstructorParameters<C1>>;
export declare function applyMixinsPropsAndMethodsInheritance<C1 extends Constructor, C2 extends Constructor, C3 extends Constructor>(ctor1: C1, ctor2: C2, ctor3: C3): Constructor<InstanceType<C3> & InstanceType<C2> & InstanceType<C1>, ConstructorParameters<C1>>;
export declare function applyMixinsPropsAndMethodsInheritance<C1 extends Constructor, C2 extends Constructor, C3 extends Constructor, C4 extends Constructor>(ctor1: C1, ctor2: C2, ctor3: C3, ctor4: C4): Constructor<InstanceType<C4> & InstanceType<C3> & InstanceType<C2> & InstanceType<C1>, ConstructorParameters<C1>>;
export declare function applyMixinsPropsAndMethodsInheritance<C1 extends Constructor, C2 extends Constructor, C3 extends Constructor, C4 extends Constructor, C5 extends Constructor>(ctor1: C1, ctor2: C2, ctor3: C3, ctor4: C4, ctor5: C5): Constructor<InstanceType<C5> & InstanceType<C4> & InstanceType<C3> & InstanceType<C2> & InstanceType<C1>, ConstructorParameters<C1>>;
export declare function applyMixinsPropsAndMethodsInheritance<C1 extends Constructor, C2 extends Constructor, C3 extends Constructor, C4 extends Constructor, C5 extends Constructor, C6 extends Constructor>(ctor1: C1, ctor2: C2, ctor3: C3, ctor4: C4, ctor5: C5, ctor6: C6): Constructor<InstanceType<C6> & InstanceType<C5> & InstanceType<C4> & InstanceType<C3> & InstanceType<C2> & InstanceType<C1>, ConstructorParameters<C1>>;
