import type { ComponentOptions, VueConstructor } from 'vue';
import Vue from 'vue';
declare type VueMixin = VueConstructor | ComponentOptions<never>;
export declare type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
export declare type ExtractInstance<T> = T extends VueConstructor<infer V> ? V : T extends ComponentOptions<infer V> ? V : never;
export declare type MixedVueConstructor<Mixins extends VueMixin[]> = Mixins extends (infer T)[] ? VueConstructor<UnionToIntersection<ExtractInstance<T>> & Vue> : never;
export default function mixins<Mixins extends VueMixin[]>(...mixins: Mixins): MixedVueConstructor<Mixins>;
export {};
