overmind-vue
Version:
Functional actions
93 lines (92 loc) • 4.52 kB
TypeScript
import { IConfiguration, Overmind, IContext } from 'overmind';
import { Ref, Component } from 'vue';
export declare const withOvermind: (instance: Overmind<IConfiguration>, Component: Component) => {
new (...args: any[]): {
$: import("vue").ComponentInternalInstance;
$data: {};
$props: import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps;
$attrs: {
[x: string]: unknown;
};
$refs: {
[x: string]: unknown;
};
$slots: Readonly<{
[name: string]: import("vue").Slot;
}>;
$root: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, string>>;
$parent: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, string>>;
$emit: (event: string, ...args: any[]) => void;
$el: any;
$options: import("vue").ComponentOptionsBase<{}, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string>;
$forceUpdate: import("vue").ReactiveEffect<any>;
$nextTick: typeof import("vue").nextTick;
$watch(source: string | Function, cb: Function, options?: import("vue").WatchOptions<boolean>): import("vue").WatchStopHandle;
} & import("vue").ShallowUnwrapRef<{}> & {} & import("vue").ComponentCustomProperties;
__isFragment?: never;
__isTeleport?: never;
__isSuspense?: never;
} & import("vue").ComponentOptionsBase<{}, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string> & {
props?: undefined;
} & ThisType<{
$: import("vue").ComponentInternalInstance;
$data: {};
$props: Readonly<{}>;
$attrs: {
[x: string]: unknown;
};
$refs: {
[x: string]: unknown;
};
$slots: Readonly<{
[name: string]: import("vue").Slot;
}>;
$root: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, string>>;
$parent: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, string>>;
$emit: (event: string, ...args: any[]) => void;
$el: any;
$options: import("vue").ComponentOptionsBase<{}, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string>;
$forceUpdate: import("vue").ReactiveEffect<any>;
$nextTick: typeof import("vue").nextTick;
$watch(source: string | Function, cb: Function, options?: import("vue").WatchOptions<boolean>): import("vue").WatchStopHandle;
} & import("vue").ShallowUnwrapRef<{}> & {} & import("vue").ComponentCustomProperties>;
export interface StateHook<Context extends IContext<{
state: {};
}>> {
(): Ref<Context['state']>;
<CB extends (state: Context['state']) => object>(cb: CB): CB extends (state: Context['state']) => infer O ? O extends object ? Ref<O> : never : never;
}
export declare function createStateHook<Context extends IContext<{
state: {};
}>>(): StateHook<Context>;
export interface ActionsHook<Context extends IContext<{
actions: {};
}>> {
(): Ref<Context['actions']>;
<CB extends (actions: Context['actions']) => object>(cb: CB): CB extends (actions: Context['actions']) => infer O ? O extends object ? Ref<O> : never : never;
}
export declare function createActionsHook<Context extends IContext<{
actions: {};
}>>(): ActionsHook<Context>;
export interface EffectsHook<Context extends IContext<{
effects: {};
}>> {
(): Ref<Context['effects']>;
<CB extends (effects: Context['effects']) => object>(cb: CB): CB extends (effects: Context['effects']) => infer O ? O extends object ? Ref<O> : never : never;
}
export declare function createEffectsHook<Context extends IContext<{
effects: {};
}>>(): EffectsHook<Context>;
export declare function createReactionHook<Context extends IContext<{
state: {};
}>>(): () => Context['reaction'];
export declare function createHooks<Context extends IContext<{
state: {};
actions: {};
effects: {};
}>>(): {
state: StateHook<Context>;
actions: ActionsHook<Context>;
effects: EffectsHook<Context>;
reaction: () => Context["reaction"];
};