overmind-vue
Version:
Functional actions
44 lines (43 loc) • 2.01 kB
TypeScript
import { IConfiguration, Overmind, IContext } from 'overmind';
import { Ref, Component } from 'vue';
export declare const withOvermind: (instance: Overmind<IConfiguration>, Component: Component) => import("vue").DefineComponent<{}, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
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"];
};