import { Class, Longest } from './types';
declare function Mixin(c1: Class): Class;
declare function Mixin(c1: Class, c2: Class): Class, I1 & I2, S1 & S2>;
declare function Mixin(c1: Class, c2: Class, c3: Class): Class, I1 & I2 & I3, S1 & S2 & S3>;
declare function Mixin(c1: Class, c2: Class, c3: Class, c4: Class): Class, I1 & I2 & I3 & I4, S1 & S2 & S3 & S4>;
declare function Mixin(c1: Class, c2: Class, c3: Class, c4: Class, c5: Class): Class, I1 & I2 & I3 & I4 & I5, S1 & S2 & S3 & S4 & S5>;
declare function Mixin(c1: Class, c2: Class, c3: Class, c4: Class, c5: Class, c6: Class): Class, I1 & I2 & I3 & I4 & I5 & I6, S1 & S2 & S3 & S4 & S5 & S6>;
declare function Mixin(c1: Class, c2: Class, c3: Class, c4: Class, c5: Class, c6: Class, c7: Class): Class, I1 & I2 & I3 & I4 & I5 & I6 & I7, S1 & S2 & S3 & S4 & S5 & S6 & S7>;
declare function Mixin(c1: Class, c2: Class, c3: Class, c4: Class, c5: Class, c6: Class, c7: Class, c8: Class): Class, I1 & I2 & I3 & I4 & I5 & I6 & I7 & I8, S1 & S2 & S3 & S4 & S5 & S6 & S7 & S8>;
declare function Mixin(c1: Class, c2: Class, c3: Class, c4: Class, c5: Class, c6: Class, c7: Class, c8: Class, c9: Class): Class, I1 & I2 & I3 & I4 & I5 & I6 & I7 & I8 & I9, S1 & S2 & S3 & S4 & S5 & S6 & S7 & S8 & S9>;
declare function Mixin(c1: Class, c2: Class, c3: Class, c4: Class, c5: Class, c6: Class, c7: Class, c8: Class, c9: Class, c10: Class): Class, I1 & I2 & I3 & I4 & I5 & I6 & I7 & I8 & I9 & I10, S1 & S2 & S3 & S4 & S5 & S6 & S7 & S8 & S9 & S10>;
/**
* A decorator version of the `Mixin` function. You'll want to use this instead of `Mixin` for mixing generic classes.
*/
declare const mix: (...ingredients: Class[]) => (decoratedClass: any) => any;
export { Mixin, mix };