import Vue from 'vue';
export declare function defineMethod<TR = void>(key: string, clone?: boolean): TR extends Function ? TR : (this: Vue) => TR;
export declare function defineMethod<T1, TR>(key: string, clone?: boolean): (this: Vue, a: T1) => TR;
export declare function defineMethod<T1, T2, TR>(key: string, clone?: boolean): (this: Vue, a: T1, b: T2) => TR;
export declare function defineMethod<T1, T2, T3, TR>(key: string, clone?: boolean): (this: Vue, a: T1, b: T2, c: T3) => TR;
export declare function defineMethod<T1, T2, T3, T4, TR>(key: string, clone?: boolean): (this: Vue, a: T1, b: T2, c: T3, d: T4) => TR;
export declare type DeferredMethod = (...args: any[]) => Promise<any>;
export declare function defineDeferredMethod<T extends DeferredMethod>(key: string): T;
