import { Vue } from '../vue/vue' import { Dispatch, Commit } from './index' type Computed = () => any type InlineComputed = T extends (...args: any[]) => infer R ? () => R : never type MutationMethod = (...args: any[]) => void type ActionMethod = (...args: any[]) => Promise type InlineMethod any> = T extends (fn: any, ...args: infer Args) => infer R ? (...args: Args) => R : never type CustomVue = Vue & Record interface Mapper { (map: Key[]): { [K in Key]: R } >(map: Map): { [K in keyof Map]: R } } interface MapperWithNamespace { (namespace: string, map: Key[]): { [K in Key]: R } >(namespace: string, map: Map): { [K in keyof Map]: R } } interface MapperForState { any> = {}>( map: Map ): { [K in keyof Map]: InlineComputed } } interface MapperForStateWithNamespace { any> = {}>( namespace: string, map: Map ): { [K in keyof Map]: InlineComputed } } interface MapperForAction { any>>( map: Map ): { [K in keyof Map]: InlineMethod } } interface MapperForActionWithNamespace { any>>( namespace: string, map: Map ): { [K in keyof Map]: InlineMethod } } interface MapperForMutation { any>>( map: Map ): { [K in keyof Map]: InlineMethod } } interface MapperForMutationWithNamespace { any>>( namespace: string, map: Map ): { [K in keyof Map]: InlineMethod } } interface NamespacedMappers { mapState: Mapper & MapperForState mapMutations: Mapper & MapperForMutation mapGetters: Mapper mapActions: Mapper & MapperForAction } export declare const mapState: Mapper & MapperWithNamespace & MapperForState & MapperForStateWithNamespace export declare const mapMutations: Mapper & MapperWithNamespace & MapperForMutation & MapperForMutationWithNamespace export declare const mapGetters: Mapper & MapperWithNamespace export declare const mapActions: Mapper & MapperWithNamespace & MapperForAction & MapperForActionWithNamespace export declare function createNamespacedHelpers(namespace: string): NamespacedMappers