123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- import _Vue = require("vue");
- import { WatchOptions } from "vue";
- // augment typings of Vue.js
- import "./vue";
- export * from "./helpers";
- export declare class Store<S> {
- constructor(options: StoreOptions<S>);
- readonly state: S;
- readonly getters: any;
- replaceState(state: S): void;
- dispatch: Dispatch;
- commit: Commit;
- subscribe<P extends Payload>(fn: (mutation: P, state: S) => any): () => void;
- watch<T>(getter: (state: S) => T, cb: (value: T) => void, options?: WatchOptions): void;
- registerModule<T>(path: string, module: Module<T, S>): void;
- registerModule<T>(path: string[], module: Module<T, S>): void;
- unregisterModule(path: string): void;
- unregisterModule(path: string[]): void;
- hotUpdate(options: {
- actions?: ActionTree<S, S>;
- mutations?: MutationTree<S>;
- getters?: GetterTree<S, S>;
- modules?: ModuleTree<S>;
- }): void;
- }
- export declare function install(Vue: typeof _Vue): void;
- export interface Dispatch {
- (type: string, payload?: any): Promise<any[]>;
- <P extends Payload>(payloadWithType: P): Promise<any[]>;
- }
- export interface Commit {
- (type: string, payload?: any, options?: CommitOptions): void;
- <P extends Payload>(payloadWithType: P, options?: CommitOptions): void;
- }
- export interface ActionContext<S, R> {
- dispatch: Dispatch;
- commit: Commit;
- state: S;
- getters: any;
- rootState: R;
- }
- export interface Payload {
- type: string;
- }
- export interface CommitOptions {
- silent?: boolean;
- }
- export interface StoreOptions<S> {
- state?: S;
- getters?: GetterTree<S, S>;
- actions?: ActionTree<S, S>;
- mutations?: MutationTree<S>;
- modules?: ModuleTree<S>;
- plugins?: Plugin<S>[];
- strict?: boolean;
- }
- export type Getter<S, R> = (state: S, getters: any, rootState: R) => any;
- export type Action<S, R> = (injectee: ActionContext<S, R>, payload: any) => any;
- export type Mutation<S> = (state: S, payload: any) => any;
- export type Plugin<S> = (store: Store<S>) => any;
- export interface Module<S, R> {
- state?: S;
- getters?: GetterTree<S, R>;
- actions?: ActionTree<S, R>;
- mutations?: MutationTree<S>;
- modules?: ModuleTree<R>;
- }
- export interface GetterTree<S, R> {
- [key: string]: Getter<S, R>;
- }
- export interface ActionTree<S, R> {
- [key: string]: Action<S, R>;
- }
- export interface MutationTree<S> {
- [key: string]: Mutation<S>;
- }
- export interface ModuleTree<R> {
- [key: string]: Module<any, R>;
- }
|