import { GetterTree, CommitOptions, MutationTree, Dispatch, DispatchOptions, Store, ActionTree } from 'vuex'; declare type Not = T extends M ? never : T; declare type StoreParameter any> = Parameters[1] extends undefined ? never : Parameters[1] extends NonNullable[1]> ? Parameters[1] : Parameters[1] | undefined; declare type MergedFunctionProcessor any, O> = Parameters[1] extends undefined ? (options?: O) => ReturnType : Parameters[1] extends NonNullable[1]> ? (payload: Parameters[1], options?: O) => ReturnType : (payload?: Parameters[1], options?: O) => ReturnType; declare type StateObject = Not, Function>; declare type StateFunction = Not<() => unknown | any, Record>; declare type State = StateObject | StateFunction; declare type StateType = T extends () => any ? ReturnType : T; declare type GettersTransformer> = Readonly<{ [P in keyof T]: ReturnType; }>; declare const getterTree: , any>>(_state: S, tree: T) => T; declare type MutationsTransformer> = { [P in keyof T]: MergedFunctionProcessor; }; interface Commit any>> {

(mutation: P, payload: StoreParameter, options?: CommitOptions): ReturnType;

(mutation: StoreParameter extends never ? P : never, options?: CommitOptions): ReturnType; } declare const mutationTree: >>(_state: S, tree: T) => T; declare type NuxtModules = Record>; declare type ModuleTransformer = T extends NuxtModules ? { [P in keyof T]: MergedStoreType; } : {}; declare type RootStateHelper> = StateType & ModuleTransformer; declare type RootGettersHelper> = GettersTransformer & ModuleTransformer; declare type ActionContext> = { state: StateType; getters: { [P in keyof T['getters']]: ReturnType; }; commit: Commit; dispatch: Dispatch; rootState: any; rootGetters: any; }; declare type ActionTransformer> = { [P in keyof T]: MergedFunctionProcessor; }; interface ActionHandler { (this: Store>, injectee: ActionContext, payload?: any): any; } interface ModifiedActionTree { [key: string]: ActionHandler; } interface NormalisedActionHandler> { (this: Store, ...args: Parameters): ReturnType; } declare type NormalisedActionTree> = { [P in keyof T]: NormalisedActionHandler; }; declare const actionTree: , G extends GetterTree, any>, M extends MutationTree>, T extends ModifiedActionTree>>>(_store: NuxtStoreInput, tree: T) => NormalisedActionTree; interface BlankStore { state: {}; getters: {}; mutations: {}; actions: {}; modules: {}; namespaced: boolean; strict: boolean; } interface NuxtStore { state: State; getters: Record; mutations: Record; actions: Record; modules: NuxtModules; namespaced: boolean; strict: boolean; } interface NuxtStoreInput; }> { strict?: boolean; namespaced?: boolean; state: T; getters?: G; mutations?: M; actions?: A; modules?: S; } declare type MergedStoreType = ('state' extends K ? StateType : {}) & ('getters' extends K ? GettersTransformer : {}) & ('mutations' extends K ? MutationsTransformer : {}) & ('actions' extends K ? ActionTransformer : {}) & ('modules' extends K ? ModuleTransformer : {}); declare const getStoreType: , G, M, A, S extends NuxtModules>(store: NuxtStoreInput) => { actionContext: ActionContext & BlankStore>; rootState: RootStateHelper & BlankStore>; rootGetters: RootGettersHelper & BlankStore>; storeInstance: ActionContext & BlankStore> & Store>; }; declare type ComputedState> = { [K in keyof T]: T[K] extends Function ? T[K] : () => T[K]; }; interface Mapper> { (prop: M, properties: P[]): ComputedState>; (prop: M | M[]): ComputedState>; } declare const getAccessorType: , G extends GetterTree, any>, M extends MutationTree>, A extends ActionTree, any>, S extends NuxtModules>(store: Partial>) => MergedStoreType> & BlankStore, string>; declare const useAccessor: , G extends GetterTree, any>, M extends MutationTree>, A extends ActionTree, any>, S extends NuxtModules>(store: Store, input: Partial>, namespace?: string | undefined) => MergedStoreType> & BlankStore, string>; declare const getAccessorFromStore: (pattern: any) => (store: Store) => MergedStoreType, GetterTree, any>, MutationTree>, ActionTree, any>, NuxtModules>> & BlankStore, string>; declare const createMapper: >(accessor: T) => Mapper; export { ActionContext, ActionTransformer, BlankStore, Commit, ComputedState, GettersTransformer, Mapper, MergedStoreType, MutationsTransformer, NormalisedActionHandler, NuxtStore, NuxtStoreInput, RootGettersHelper, RootStateHelper, actionTree, createMapper, getAccessorFromStore, getAccessorType, getStoreType, getterTree, mutationTree, useAccessor };