1 | import { ComponentOptions } from 'vue';
|
2 | import { Vue, VueBase, VueMixin } from './vue';
|
3 | export declare function Options<V extends Vue>(options: ComponentOptions & ThisType<V>): <VC extends VueBase>(target: VC) => VC;
|
4 | export interface VueDecorator {
|
5 | (Ctor: VueBase): void;
|
6 | (target: Vue, key: string): void;
|
7 | (target: Vue, key: string, index: number): void;
|
8 | }
|
9 | export declare function createDecorator(factory: (options: ComponentOptions, key: string, index: number) => void): VueDecorator;
|
10 | interface PropsMixin {
|
11 | new <Props = unknown>(...args: any[]): {
|
12 | $props: Props;
|
13 | };
|
14 | }
|
15 | declare type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
|
16 | declare type ExtractInstance<T> = T extends VueMixin<infer V> ? V : never;
|
17 | declare type MixedVueBase<Mixins extends VueMixin[]> = Mixins extends (infer T)[] ? VueBase<UnionToIntersection<ExtractInstance<T>> & Vue> & PropsMixin : never;
|
18 | export declare function mixins<T extends VueMixin[]>(...Ctors: T): MixedVueBase<T>;
|
19 | export {};
|